乍一看,十进制(10,6)似乎很适合我对字段表示价格的要求,但我真正想要的是一个可以存储最多的字段小数点右边的6位数字,不一定每次都是6位数。
如果满足此要求,我在字段中有效地编码了精度信息,这对于将数据检索到C ++ Decimal对象的实例非常有用,该对象要求1.20(精度2)与1.2000不同(精度4),即使它们具有相同的价值/价值。在我的对象中保留精度信息对于进一步的算术运算至关重要。
我想,另一种方法是将值存储为Mysql中的varchar(),它将保留数字,但在Mysql中丢失算术运算符功能。
第三个丑陋的替代方法是使用Decimal(10,6),然后使用一个额外的字段来存储我正在使用的精度,这样我就可以正确地转换为我的C ++实例。如果没有更好的解决方案,我可能不得不采用这种丑陋的方法。
任何人都对我如何处理这些要求提出了很好的建议?
答案 0 :(得分:0)
Per Crontab和Jim Garrison的评论,这个问题的最佳解决方案是:
DECIMAL(10,6)
存储号码本身,