Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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类型来存储精度可变的十进制数(每个记录可能会更改) 如果我将十进制存储为1.200,我希望查询检索值为1.200,但是如果我将值存储为1.450005,我希望查询返回1.450005 我需要能够将字段作为数字类型进行比较_Mysql_Sqldatatypes - Fatal编程技术网

我应该使用哪种mysql类型来存储精度可变的十进制数(每个记录可能会更改) 如果我将十进制存储为1.200,我希望查询检索值为1.200,但是如果我将值存储为1.450005,我希望查询返回1.450005 我需要能够将字段作为数字类型进行比较

我应该使用哪种mysql类型来存储精度可变的十进制数(每个记录可能会更改) 如果我将十进制存储为1.200,我希望查询检索值为1.200,但是如果我将值存储为1.450005,我希望查询返回1.450005 我需要能够将字段作为数字类型进行比较,mysql,sqldatatypes,Mysql,Sqldatatypes,乍一看,十进制(10,6)似乎是我对字段表示价格的要求的一个很好的用途,但我真正想要的是一个可以在小数点右侧最多存储6位的字段,不一定每次都存储全部6位 如果满足此要求,则有效地在字段中编码精度信息,这对于将数据取出到C++十进制对象的实例中是有用的,这要求1.20(精度2)与1.2000(精度4)不同,即使它们具有相同的值/值。在对象中保留精度信息对于进一步的算术运算至关重要 我想,另一种方法是在Mysql中将该值存储为varchar(),它将保留数字,但随后会丢失Mysql中的算术运算符功能

乍一看,十进制(10,6)似乎是我对字段表示价格的要求的一个很好的用途,但我真正想要的是一个可以在小数点右侧最多存储6位的字段,不一定每次都存储全部6位

如果满足此要求,则有效地在字段中编码精度信息,这对于将数据取出到C++十进制对象的实例中是有用的,这要求1.20(精度2)与1.2000(精度4)不同,即使它们具有相同的值/值。在对象中保留精度信息对于进一步的算术运算至关重要

我想,另一种方法是在Mysql中将该值存储为varchar(),它将保留数字,但随后会丢失Mysql中的算术运算符功能

一个第三个,丑陋的替代方案是使用十进制(10,6),然后使用一个额外的字段,它将存储我使用的精度,这样我就可以正确地转换成C++实例。如果没有更好的解决方案,我可能不得不采用这种丑陋的方法


任何人对我如何满足这些要求都有好的建议吗?

根据Crontab和Jim Garrison的评论,这个问题的最佳解决方案是:

  • 用于存储号码本身,以及
  • 使用一个额外字段来存储应用于特定记录的精度

  • 你总结了三点;如果您是必须实现它的人,我认为代码的复杂程度取决于您。如果您使用这些数字来计算sig图,那么我可能会选择选项3。但这只是我的观点。你正确地分析了选项。没有别的了。选择一个#3听起来对我来说是最好的。看看我为什么要回复一篇旧帖子。这只适用于每次只有一条十进制记录的情况。如果您要获取多行数据,并使用另一个列变量来表示舍入或截断十进制长度,那么这是行不通的。