草庐IT

toFixed2Decimal

全部标签

DECIMAL NUMERIC 数据类型中的 MySQL 精度问题

在编写用于科学应用的函数时,我遇到了问题。我将其追溯到MySQL缺乏精确性。这是官方文档中的页面,该页面声称DECIMAL的最大位数为65-http://dev.mysql.com/doc/refman/5.6/en/fixed-point-types.html.它还描述了如果值超过指定的精度,将如何对其进行舍入。这是用于测试它的可重现代码(一个mysql存储函数)-DELIMITER$$DROPFUNCTIONIFEXISTStest$$CREATEFUNCTIONtest(xxDECIMAL(30,25))RETURNSDECIMAL(30,25)DETERMINISTICBEGI

mysql - DECIMAL mysql和存储空间?

根据我对mysql文档中DECIMAL手册的理解,它指出九位数的每个倍数需要4个字节,剩下的数字需要以下字节;numberofdigitsleftover|bytes0|01|12|13|24|25|36|37|48|4那么decimal(12,6)将等于6个字节的总存储空间?我知道小数部分将始终等于6位数字,因为零被填充,但对于DECIMAL(12,6)列,整数部分并非如此,存储是否按行或在列定义处?例子DECIMAL(12,6)1:178.999999//3digitsforintegerpartsototalwouldbe5bytes?2:0.880000//1digitsfor

java - Hibernate decimal(20,3) 映射失败

我想在表中创建一个精度为20、小数位数为3的小数列,我所做的是:在pojo类中创建以下变量privateBigDecimalminimumValue;在.hbm文件中,我将属性值设置为我收到以下错误:org.hibernate.MappingException:无法确定类型:DECIMAL,表:TEST_DECIMAL,列:[org.hibernate.mapping.Column(minimumValue)]有什么建议吗? 最佳答案 删除type="DECIMAL".type属性包含hibernate映射类型,此映射类型将从Jav

mysql - MySQL 数据类型声明中 DECIMAL(x, y) 中 x 和 y 的边界值是多少?

我有以下UDFdropfunctionifexistsgetCurrency$$createfunctiongetCurrency(dtdatetime,xdecimal(19,4),ydecimal(19,4))returnsdecimal(10,4)readssqldatabegindeclarecurrencyvaldecimal(10,4);/*Someconditions*/selectcasewhendt="2000-12-31"then0elseround((x/y),4)intocurrencyval;returncurrencyval;end$$有时此UDF会抛出数据

PHP float/double 存储为 MySQL DECIMAL

我在MySQL中存储值时遇到了一个非常奇怪的问题。前提:我有一个表使用DECIMAL(15,8)来存储货币值(比如订单总额),但是当我尝试插入例如:2,45545345这存储为2.00000000我尝试了MySQL的FORMAT/CAST函数,但输出仍然相同。查询是这样生成的:$db->query("INSERTINTO`random_table_name`SETcurrency_value='".floatval($value)."'");我也尝试了doubleval,但结果相同。有趣的是,虽然同一段代码在几周前运行良好,但我不记得对数据库结构或数据库类进行的任何更改可能会导致此问题

c# - 'x' 上的 'y' 属性无法设置为 'System.Decimal' 值。您必须将此属性设置为类型为 'System.Boolean' 的非空值

我有一个MySQL存储过程,它从名为tuser的特定表中选择数据。我正在使用EntityFramework6,所以我将过程的结果定义为tuser的实体。当我在C#代码中使用该过程时,抛出以下异常:The'bIsActive'propertyon'tuser'couldnotbesettoa'System.Decimal'value.Youmustsetthispropertytoanon-nullvalueoftype'System.Boolean'.我无法理解我想执行的操作与抛出的异常之间的联系。数据库中的表定义:CREATETABLE`tuser`(`id`int(11)NOTNU

c# - 无法使用 mySql 在 Entity Frameworking 中使用 Decimal DataType 更新行

我已经在这个问题上工作了太久。我的所有选择和插入命令都可以正常工作,但在更新十进制列时出现错误。我正在使用以下软件ASP.Netv4MySQL连接器网络6.3.3MySql服务器5.0.51a产品类别publicclassProduct(){publicintProductID{get;set;}publicstringName{get;set;}publicdecimalPrice{get;set;}publicstringDescription{get;set;}}产生错误的代码varcontext=ObjectContextHelper.CurrentObjectContext;

mysql 、 bigint 或 decimal 用于存储 > 32 位值但小于 64 位

我们需要存储最大为2^38的整数值。有什么理由使用decimal(12,0)还是我们应该使用bigint? 最佳答案 在我看来,bigint会更好。它存储为一个整数,MySQL无需任何转换就可以native理解它,因此(我想)操作起来会更快。因此,如果您使用bigint,您应该期望MySQL的效率稍微高一些。根据thismanualpage,您号码的前9位数字将存储在一个四字节block中,其余数字(您最多需要12位)将存储在一个两字节block中。这意味着您的列每行占用6个字节,而bigint则为8个字节。我建议除非a)你要存储一

sql - 分、秒、毫秒的 varchar 或 decimal 数据类型

我有一个MySQL数据库表,其中包含跨国运行时间。我正处于岔路口,并质疑是否应该将运行时间(varchar)的当前数据类型转换为小数。varchar数据类型吸引我的一个方面是我不必将传入的运行结果(通过php脚本解析)转换为秒,然后在动态检索时再次返回。我的处理脚本确保每次都是8个字符长,除非运动员DNF(未完成)也是我想要存储的信息。DNF在结果中显示为“DNF”。那么运行时间应该存储为17:40.57还是1060.57?各自的优点和缺点是什么?有没有比我已经假设的正确类型更好的数据类型?此外,如果您选择1060.57作为答案,那么我将如何在逻辑上存储DNF或DNS?

php - DECIMAL vs INT 什么是最佳优化选择?

如果没有精确的上下文,我敢肯定这个问题是不完整的,所以我会尝试解释它,并且我会尽量清楚我需要存储整个页面上显示的数据,包括克、毫克、微克和千焦耳。所有这些数据都像99999.99g(相差千焦耳),因此我可以对旧版MySql使用DECIMAL(7,2)或DECIMAL(5,2)。但是,我在mysql站点上看到,DECIMAL数据类型比MEDIUMINT更重(我错了吗?)足以存储数据。主要是,我将对小数进行数字运算或者从用户机器上float,不需要再次存储它们,所以我怀疑在这种情况下什么是最好的数据类型。那么在这种情况下最好的数据类型是什么? 最佳答案