提问人:garrett 提问时间:1/1/2013 最后编辑:Jensgarrett 更新时间:1/1/2013 访问量:1128
perl 打印浮点数的精度是多少?
To what precision does perl print floating-point numbers?
问:
my $num = log(1_000_000) / log(10);
print "num: $num\n";
print "int(num): " . int($num) . "\n";
print "sprintf(num): " . sprintf("%0.16f", $num) . "\n";
生产:
num: 6
int(num): 5
sprintf(num): 5.9999999999999991
perl 打印浮点数的精度是多少?
使用:为 x86_64-linux-thread-multi 构建的 v5.8.8
答:
10赞
ysth
1/1/2013
#1
在字符串化浮点数时,无论是打印还是其他方式,Perl 通常使用编译它的 float.h 或 limits.h 文件中的 DBL_DIG 或 LDBL_DIG 值。
这通常是 perl 将使用的浮点类型的精度向下舍入。例如,如果使用典型的 double 类型,精度为 53 位 = 15.95 位,而 Perl 通常会以 15 位的精度进行字符串化。
下一个:如何精确地将毫秒转换为秒
评论
5.8
5.10