我只花了一个划时代搞清楚,我的大整数是个好人,是printf
的%d
/%u
都达不到显示它的任务:%s是唯一允许printf正确显示大整数的格式吗?
use strict;
use warnings;
use bigint;
use List::Gen;
*factorial = do {use bigint; <[..*] 1, 1..>->code};
my $value = factorial(32);
printf "%d\n", $value; # -1
printf "%u\n", $value; # 18446744073709551615
printf "%s\n", $value; # 263130836933693530167218012160000000
,我不会感到惊讶,如果答案是不,只是想确认一下。
没有什么特别的理由使用'printf',除了当我开始喂食我的过程的巨大数字时它已经在那里了。 – Zaid