相关疑难解决方法(0)

为什么Perl的sprintf不能正确舍入浮点数?

我一直在寻找Perl内置函数sprintf使用的舍入约定.

我认为它进行了正常的舍入(例如在Java的舍入模式约定中的 ROUND_HALF_UP ),但挖掘进一步证明这是错误的:

> /usr/local/bin/perl5.10.1 -e 'print(sprintf("%.2f", shift @ARGV)."\n");' 0.335
0.34
> /usr/local/bin/perl5.10.1 -e 'print(sprintf("%.2f", shift @ARGV)."\n");' 1.335
1.33
Run Code Online (Sandbox Code Playgroud)

floating-point perl printf

5
推荐指数
2
解决办法
4343
查看次数

Ruby中浮点的一致舍入

我理解由于浮点的不精确表示,下面的代码'感觉'不一致.

"%.1f" % 1.14 # => 1.1
"%.1f" % 1.15 # => 1.1
"%.1f" % 1.16 # => 1.2
"%.0f" % 1.4 # => 1
"%.0f" % 1.5 # => 2
"%.0f" % 1.6 # => 2
Run Code Online (Sandbox Code Playgroud)

但是,有一种简单的方法可以将一致的浮点数舍入为5吗?一种方法可能是明确地进行字符串操作.是否有更简单的方法或现有的图书馆?

ruby floating-point rounding

2
推荐指数
1
解决办法
1502
查看次数

标签 统计

floating-point ×2

perl ×1

printf ×1

rounding ×1

ruby ×1