Formatting 这是TclTk的大量问题还是格式问题?

Formatting 这是TclTk的大量问题还是格式问题?,formatting,tcl,Formatting,Tcl,我正在Windows 8.1上使用ActiveTcl 8.6.8 TclTk是否有像Python和Ruby这样的大“无限”数字?如果是,那么下面的第二个代码部分有什么问题 下面的代码没有问题,我理解 % set a 1234567890 1234567890 % puts $a 1234567890 % expr $a +10 1234567900 % format %d $a 1234567890 % format %5d $a 1234567890 % format %15d $a

我正在Windows 8.1上使用ActiveTcl 8.6.8

TclTk是否有像Python和Ruby这样的大“无限”数字?如果是,那么下面的第二个代码部分有什么问题

下面的代码没有问题,我理解

% set a 1234567890
1234567890
% puts $a
1234567890
% expr $a +10
1234567900
% format %d $a
1234567890
% format %5d $a
1234567890
% format %15d $a
     1234567890
以下代码有什么问题

% set b 9876543210
9876543210
% puts $b
9876543210
% expr $b + 10
9876543220
% format %d $b
1286608618
% format %5d $b
1286608618
% format %15d $b
     1286608618

为什么格式不能提供正确的输出?我做错了什么?

Tcl有大问题。从8.5开始就这样做了。它可以在任何需要的地方在算术代码中使用它们;您应该假设所有整数都是bignums(并让Tcl选择它想要在内部使用的任何存储格式)

format
scan
命令需要一些额外的工作,因为要支持它们,它们还必须支持依赖于以前常见的钳位到范围行为的旧代码。这意味着使用
ll
作为格式代码的修饰符;例如,使用
%d

% format %d 123123123123123123123123
-8893568888133913677
% format %lld 123123123123123123123123
123123123123123123123123

% scan 123123123123123123123123 %d
9223372036854775807
% scan 123123123123123123123123 %lld
123123123123123123123123
这与字段宽度控制无关


所以TclTk得到了像Python和Ruby这样的大人物。对于ll来说,这是一个很好的示例。非常感谢你。
% format %40d 123123123123123123123123
                    -8893568888133913677
% format %40lld 123123123123123123123123
                123123123123123123123123