我有一个浮点数。我想像这样围绕它:
1.301 => 1.31
1.309 => 1.31
1.3001 => 1.30
1.3009 => 1.30
到目前为止,我已经尝试过这个:
$number = ceil($number * 100) / 100;
这几乎是完美的,但仍然不完美:
1.3301 => 1.34 // It should be 1.33
有没有办法解决我的问题?非常感谢您的帮助。
解决 来自Niet the Dark Absol的回答: $ number = ceil(floor($ number * 1000)/ 10)/ 100;
再次,tks for all帮助:)
答案 0 :(得分:6)
您似乎正在做的是向下舍入到三位数,然后向上舍入到两位数。
我不会假装知道这有多大意义。
$number = ceil( floor($number*1000) / 10) / 100;
要保留两位小数,请添加:
$number = number_format($number,2);
// OR:
$number = sprintf("%.2f",$number);
但请注意,上述两个结果都是字符串,因此只应用于输出。