Igo*_*Oks 15 floating-point perl floating-accuracy
有没有办法设置Perl脚本的浮点精度(3位数),而不必专门为每个变量更改它?
类似于TCL的东西:
global tcl_precision
set tcl_precision 3
Run Code Online (Sandbox Code Playgroud)
dra*_*tun 19
use Math::BigFloat;
Math::BigFloat->precision(-3);
my $x = Math::BigFloat->new(1.123566);
my $y = Math::BigFloat->new(3.333333);
Run Code Online (Sandbox Code Playgroud)
或者bignum改为:
use bignum ( p => -3 );
my $x = 1.123566;
my $y = 3.333333;
Run Code Online (Sandbox Code Playgroud)
然后在两种情况下:
say $x; # => 1.124
say $y; # => 3.333
say $x + $y; # => 4.457
Run Code Online (Sandbox Code Playgroud)
Xet*_*ius 15
没有办法全局改变这一点.
如果它只是用于显示目的,那么使用sprintf("%.3f", $value);.
出于数学目的,请使用(int(($value * 1000.0) + 0.5) / 1000.0).这适用于正数.您需要将其更改为使用负数.
| 归档时间: |
|
| 查看次数: |
25187 次 |
| 最近记录: |