浮点后显示最大2位数字...仅当它是具有 2 个以上浮点数的浮点数时

2022-08-30 21:58:10

在我的应用程序中,我做了一些数学运算,结果可以是浮点数或int

我想用小数点后两位数显示最终结果最大...如果结果是浮点数

有两种方法可以做到这一点

number_format($final ,2);

sprintf ("%.2f", $final );

但问题是...如果我的最终结果是一个int,就像我最终得到的25

25.00 

或者如果最终结果是它给我的东西12.3

12.30

我不想要那个

有没有办法格式化一个数字,只有当它是一个小数点后超过2位数字的浮点数时,浮点后才显示2位数字?或者我应该在格式化我的号码之前做一些检查?


答案 1
<?php
$number = 25;
print round($number, 2);

print "\n";

$number = 25.3;
print round($number, 2);

print "\n";

$number = 25.33;
print round($number, 2);

指纹:

25
25.3
25.33

答案 2

我找到了另一种选择。转换为 以去除尾随零:float

echo (float)sprintf("%.2f", $final);
// or
echo (float)number_format($final ,2);

但这些函数似乎像:round

echo sprintf("%.2f", 12.556); // 12.56
echo number_format(12.556, 2); // 12.56

因此,如果您不希望出现此行为,请使用以下命令:

$final = 12.556;
echo (int)(($final*100))/100; // 12.55

echo (int)((12*100))/100; // 12
echo (int)((12.3*100))/100; // 12.3
echo (int)((12.34567*100))/100; // 12.34

推荐