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