小数乘法结果中逗号后的PHP限制位数

时间:2018-06-23 19:16:46

标签: php

我有此代码:

$number_1 = 0.01;
$number_2 = 3.22321;
$result = $number_1 * $number_2;

结果为:0.0322321

如何将$result的小数位数与$number_1相同,在这种情况下,我希望使用0.03(逗号后两位)。

更新$number_1并非始终以逗号后两位。这是随机的。

5 个答案:

答案 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

https://3v4l.org/fGW5N

答案 3 :(得分:-1)

编辑:编辑后,解决方案是: PHP: get number of decimal digits

喜欢:

round(0.0322321, strlen(substr(strrchr($number_1, "."), 1)));

echo round(0.0322321, 2);  // 0.03

http://php.net/manual/fr/function.round.php

答案 4 :(得分:-1)

您可以使用printf() / sprintf()

$val = 1.234;
printf('%.2f', $val);

number_format()

$val = 1.234;
echo number_format($val, 2, '.', '');