$quantity = 20;
$product_rate = 66.79;
$total = $quantity * $product_rate;
echo $total;
输出显示1335.8000000000002
有可能使用php显示1335.8吗?
答案 0 :(得分:1)
您可以使用 number_format()
这样的功能:
$firstNum = 1335.8000000000002;
$number = number_format($firstNum, 1, '.', '');
echo $number;
输出:
1335.8
更多关于number_format()
:http://php.net/number-format。
您还可以将数字乘以10,然后使用intval()
将其转换为integer
(以此方式删除小数),然后除以10,如下所示:
$firstNum = 1335.8000000000002;
$number = 10 * intval($firstNum)/10;
echo $number;
输出:
1335.8
注意:使用上述方法时不会进行舍入,对于舍入,您可以使用以下内容:
$number = round($firstNum, 1);
echo $number;
在这种情况下也输出:
1335.8
答案 1 :(得分:0)
你真的使用这些变量值吗?我正在使用PHP7,您给定值的输出是1335.8。如果进行手动计算,则结果相同。它应该是1335.8。无论如何,如果您需要对下面可以使用的值进行综合。 轮($总,1); 请参阅以下链接,您将能够获得更多详细信息。 http://php.net/manual/en/function.round.php
答案 2 :(得分:0)
由于浮点数的工作原理如何,它们无法准确表示每个数字,因此可以进行近似。
20
的最近代表是20
,它可以完全代表20
,但66.79
例如近似为66.7900000000000062527760746889
,时间20
1}} 1335.800000000000125055521493778
再次无法表示,并且近似为1335.80000000000018189894035459
。
根据您选择打印此数字的方式,它可能会采用不同的方式,在您的情况下由于某种原因您决定打印13位小数以使其四舍五入为1335.8000000000002
,但如果您只打印1或2小数位数将打印为1335.8
或1335.80
。在打印浮点数时,请注意,您可能需要指定与您相关的小数位数。为此,请使用number_format()
。
示例:
echo number_format($number, 2); // prints 2 decimal places
答案 3 :(得分:0)
您只需使用echo echo round($total, 1)
而不是round($total)