该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
$number = sprintf('%.3f',$number);
echo var_dump($number)."取$decimal 位小数 = ".round($number,$decimal)."\n";
用一组数字测试后,大部分结果是对的,有几个小数位不是预期的,结果如下:
string(6) "12.370"
取2 位小数 = 12.37
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(5) "9.950"
取2 位小数 = 9.949999999999999
string(5) "5.740"
取2 位小数 = 5.74
string(6) "10.030"
取2 位小数 = 10.03
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(5) "9.010"
取2 位小数 = 9.01
string(6) "10.780"
取2 位小数 = 10.78
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(5) "9.980"
取2 位小数 = 9.98
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(6) "10.550"
取2 位小数 = 10.55
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(5) "0.000"
取2 位小数 = 0
string(6) "10.010"
取2 位小数 = 10.01
string(5) "6.990"
取2 位小数 = 6.99
string(5) "8.540"
取2 位小数 = 8.539999999999999
string(5) "0.000"
取2 位小数 = 0