perl - 如何在 Perl 中设置浮点精度?

标签 perl floating-point floating-accuracy

有没有办法设置 Perl 脚本的浮点精度(到 3 位数字),而不必专门针对每个变量进行更改?

与 TCL 类似的东西:

global tcl_precision
set tcl_precision 3

最佳答案

使用Math::BigFloatbignum :

use Math::BigFloat;
Math::BigFloat->precision(-3);

my $x = Math::BigFloat->new(1.123566);
my $y = Math::BigFloat->new(3.333333);

或者用 bignum 代替:

use bignum ( p => -3 );
my $x = 1.123566;
my $y = 3.333333;

那么在这两种情况下:

say $x;       # => 1.124
say $y;       # => 3.333
say $x + $y;  # => 4.457

关于perl - 如何在 Perl 中设置浮点精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1838808/

相关文章:

objective-c - 比较浮点值有多危险?

math - float 学坏了吗?

math - float 学有问题吗?

perl - 使用 CGI 时如何在 perl 中获取 HTTP header

html - 如何使用 Perl 正则表达式替换 HTML 属性中的多个单词,每个单词散列为一个替代单词?

c - 使用 IEEE 浮点优化 - 保证数学恒等式?

c++ - 在 C++ 中如何从 float 转换为 double?

perl - 在运行时从方法修饰符应用角色

perl - 使用 MIME::lite 时出错

math - 计算 x mod y,其中 y 不能表示为 float