在Perl中将数字格式化为2位小数的最佳方法是什么?
例如:
10 -> 10.00
10.1 -> 10.10
10.11 -> 10.11
10.111 -> 10.11
10.1111 -> 10.11
Run Code Online (Sandbox Code Playgroud)
Sch*_*ern 16
这取决于你想如何截断它.
sprintf与%.2f格式会做正常的"圆的一半甚至是".
sprintf("%.2f", 1.555); # 1.56
sprintf("%.2f", 1.554); # 1.55
Run Code Online (Sandbox Code Playgroud)
%f是一个浮点数(基本上是一个十进制数),并.2表示只打印两个小数位.
如果你想截断,而不是圆,那么使用int.因为那只会截断为一个整数,你必须将它乘以它再次除以你想要的十位幂的小数位数.
my $places = 2;
my $factor = 10**$places;
int(1.555 * $factor) / $factor; # 1.55
Run Code Online (Sandbox Code Playgroud)
对于任何其他舍入方案,请使用Math :: Round.
| 归档时间: |
|
| 查看次数: |
28751 次 |
| 最近记录: |