作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑到 float 不精确并且我应该使用 BCMath 函数来获得精确的结果,在制作“简单”购物车时是否真的有必要在 PHP 中使用价格字符串并使用 bcadd 将它们相加?
鉴于以下示例,我为什么不应该使用圆角 float ?
我正在寻找计算购物车订单总额的最佳实践。
$floatTotal = 0.00;
$stringTotal = '0.00';
for($i=0; $i<1000; $i++) {
$floatTotal += 0.1;
}
echo "float value: ";
printf('%.40f', $floatTotal); //99.9999999999985931253831950016319751739502
echo "<br>\n";
echo "rounded float value: ". round($floatTotal); //100
echo "<br>\n";
for($i=0; $i<1000; $i++) {
$stringTotal = bcadd($stringTotal, '0.1', 2);
}
echo 'string value: '.$stringTotal.'<br>'; //100.00
最佳答案
您应该永远对货币使用浮点值。它们不准确。相反,以最小单位(美分、便士等)存储货币值,以便您可以使用整数。在这种情况下,没有理由使用 bcmath 库,除非您正在处理不太可能的巨大值。
关于php - bcadd 在计算购物车总数时真的有必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5723507/
考虑到 float 不精确并且我应该使用 BCMath 函数来获得精确的结果,在制作“简单”购物车时是否真的有必要在 PHP 中使用价格字符串并使用 bcadd 将它们相加? 鉴于以下示例,我为什么不
考虑到 float 不精确并且我应该使用 BCMath 函数来获得精确的结果,在制作“简单”购物车时是否真的有必要在 PHP 中使用价格字符串并使用 bcadd 将它们相加? 鉴于以下示例,我为什么不
golang有没有类似PHP函数的包bcsub , bcadd等等? 我正在尝试将以下函数从 php 编写到 golang。 function convertToSteamID($communityI
安装“eduTrac SIS”并访问“仪表板”后出现此错误 Ubuntu 16.4, PHP 7.0(php7.0-fpm), Apache2, Nginx, URL 给出错误 500 并显示 ngi
我是一名优秀的程序员,十分优秀!