从xml文件中提取然后分配给变量但输出错误的数字。我不太清楚为什么或如何绕过它。这是一个例子。
$pricing_high = 1.15;
echo $pricing_high;
显然显示1.15。但是,当我这样分配时:
$price = ceil($pricing_high / 0.05) * 0.05;
echo $price;
显示2。
$price = round($pricing_high / 0.05) * 0.05;
echo $price;
显示1。
如果这样传递数字,我如何正确地将数字四舍五入到最接近的5美分?
答案 0 :(得分:2)
从圆函数的PHP文档开始:
http://php.net/manual/en/function.round.php
您可以将精度指定为第二个参数:
$pricing_high = 1.15;
$price = round($pricing_high / 0.05, 2) * 0.05;
echo $price;
注意第二个参数2的值
答案 1 :(得分:1)
1.15
= 1美元和15美分?如果是这样的话:
echo sprintf('%.2f', round($price / 0.05) * 0.05); // Rounds to nearest
echo sprintf('%.2f', ceil($price / 0.05) * 0.05); // Rounds up
试验:
$price = 1.13;
echo sprintf('%.2f', round($price / 0.05) * 0.05); // Outputs: 1.15
echo sprintf('%.2f', ceil($price / 0.05) * 0.05); // Outputs: 1.15
$price = 1.12;
echo sprintf('%.2f', round($price / 0.05) * 0.05); // Outputs: 1.10
echo sprintf('%.2f', ceil($price / 0.05) * 0.05); // Outputs: 1.15
如果1.15
= 1.15美分,则将0.05
替换为5
。
答案 2 :(得分:0)
由于ceil()和floor()没有这个精度,你可以将你的结果乘以并将其除以。