我有此代码:
$number_1 = 0.01;
$number_2 = 3.22321;
$result = $number_1 * $number_2;
结果为:0.0322321
如何将$result
的小数位数与$number_1
相同,在这种情况下,我希望使用0.03
(逗号后两位)。
更新:$number_1
并非始终以逗号后两位。这是随机的。
答案 0 :(得分:2)
只需添加另一个选项,然后尝试记住一些数学方法即可。
$number_1 = 0.01;
$number_2 = 3.22321;
$result = $number_1 * $number_2;
echo round($result,log10(1/$number_1));
答案 1 :(得分:0)
您想要这样的东西:
<?php
$number_1 = 0.01;
$number_2 = 3.22321;
$result = $number_1 * $number_2;
$num_des = strlen(substr(strrchr($number_1, "."), 1));
echo round($result,$num_des);
?>
答案 2 :(得分:0)
您可以计算$ number_1中的小数位数,并将其用于number_format函数。
$decimals = strlen($number_1) - strpos($number_1, ".")-1;
echo number_format($result, $decimals); //0.03
答案 3 :(得分:-1)
编辑:编辑后,解决方案是: PHP: get number of decimal digits
喜欢:
round(0.0322321, strlen(substr(strrchr($number_1, "."), 1)));
echo round(0.0322321, 2); // 0.03
答案 4 :(得分:-1)
您可以使用printf()
/ sprintf()
:
$val = 1.234;
printf('%.2f', $val);
$val = 1.234;
echo number_format($val, 2, '.', '');