Formatting 这是TclTk的大量问题还是格式问题?
我正在Windows 8.1上使用ActiveTcl 8.6.8 TclTk是否有像Python和Ruby这样的大“无限”数字?如果是,那么下面的第二个代码部分有什么问题 下面的代码没有问题,我理解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
% 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