在PHP中,我正在编写一个应用程序,它需要精确到小数点的2位(例如:我关心的是1.23 === 1.23,而不是更多的右侧数字)。
我知道浮点数通常被认为是不好的做法,因为它们的值不精确,基于小数点右方从基数2转换到基数10的性质。然而,在我对处理货币价值的最佳实践的研究中,我看到了一些论点,如果您需要精度大于整分值,浮动是不好的。我显然不需要更精确的整分数值。
那么,我的问题是:
bcmath库一起使用的字符串?bcmath库,是否应该将MySQL db中的值存储为MySQL支持的字符串或decimal?谢谢!
发布于 2016-05-17 16:35:28
经过进一步的挖掘,我在Should I use BCMath for values with about 1,2 or 3 decimals?找到了解决方案
根据在给定的位置上接受的答案,小数点的任何精确性都不能保证浮动。
就DB中的存储而言,将其存储为字符串似乎是最简单的选择,因为bcmath库与字符串一起工作。
发布于 2016-05-17 16:44:36
使用这个可以修剪到小数点后两位,不加舍入。
<?php
$a = 12.37675;
$a = floor($a * 100) / 100; // 12.37
echo $a;或
<?php
function dollar($value) {
return floor($value * 100) / 100;
}
$a = 12.37675;
echo dollar($a);https://stackoverflow.com/questions/37281556
复制相似问题