Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL十进制(24,16)产生奇怪的结果_Mysql_Database_Magento_Magento 1.7_Decimal - Fatal编程技术网

MySQL十进制(24,16)产生奇怪的结果

MySQL十进制(24,16)产生奇怪的结果,mysql,database,magento,magento-1.7,decimal,Mysql,Database,Magento,Magento 1.7,Decimal,我目前在mySQL数据库中有一个十进制(24,16)行;但当我保存数据到它;它改变了我输入的值。就我目前所见,;我需要的最大小数位数是16 例如: 我输入:5.96666667 当我检索数据时,它返回5.966666995 这有意义吗?我是否需要通过mySQL处理这个问题的方式找到答案;或者我应该看看我的代码(Magento-但它已经完全适应了处理4个以上的小数,我需要弄清楚的是如何让数据库处理它) 我知道这不是一个非常具体的问题,但我只是想把我的思想集中在这个问题上:-) 谢谢你给我指明了

我目前在mySQL数据库中有一个十进制(24,16)行;但当我保存数据到它;它改变了我输入的值。就我目前所见,;我需要的最大小数位数是16

例如:

  • 我输入:5.96666667
  • 当我检索数据时,它返回5.966666995
这有意义吗?我是否需要通过mySQL处理这个问题的方式找到答案;或者我应该看看我的代码(Magento-但它已经完全适应了处理4个以上的小数,我需要弄清楚的是如何让数据库处理它)

我知道这不是一个非常具体的问题,但我只是想把我的思想集中在这个问题上:-)


谢谢你给我指明了正确的方向

我设法弄清了这件事的真相。正如所建议的,MySQL行的数据类型没有问题。我设法把它追溯到Magento(确切的代码位置未知)

当我在类似的设置上进行计算时;这一切都很好,所以看起来@eggyal的建议是正确的


因此,如果您正在寻找一种方法,让Magento使用超过4位小数;我建议你停止尝试;)

这是SQL查询的输出还是在PHP中运行的?我怀疑您的定点值正在MySQL之外的应用程序中的某个地方转换为浮点值。如果您依赖于精确的值,那么应用程序将必须使用对定点数据敏感的数据类型(因为Magento是在非常松散的PHP中编码的,您可能必须将您的值视为字符串)。它由Magento输出。我明天会查看它,看看是否能找到转换发生的地方,然后发回这里。