在 Pascal 中格式化小数
Formatting fraction numbers in Pascal
我需要打印矩阵中的值,这些值可能从整数到实数不等。作为示例,我的程序使用的矩阵名为 kernel,如下所示:
kernel[0,0]:= 1/16;
kernel[0,1]:= 2/16;
kernel[0,2]:= 1/16;
kernel[1,0]:= 2/16;
kernel[1,1]:= 4/16;
kernel[1,2]:= 2/16;
kernel[2,0]:= 1/16;
kernel[2,1]:= 2/16;
kernel[2,2]:= 1/16;
问题出现在打印每个数字时,因为我找不到一种方法来以易于阅读的方式打印像 1/16
这样的数字,程序显示像 6.2500000000000000000000000000E-2
没关系,但我更喜欢 0.0625
甚至更好的东西 1/16
。有没有人承认允许我这样做的格式设置方式?
每个数组元素包含分数的值。
要将值写成分数,您可以简单地将分子计算为数组元素与分母的乘积。
我更喜欢使用 Format()
功能来设置显示格式。
给定您显示的数组,两个索引变量 a
和 b
以及分母
denominator := 16;
for a := 0 to 2 do
for b := 0 to 2 do
begin
s := format('kernel[%d,%d] = %d/%d',[a,b,round(kernel[a,b]*denominator),denominator]);
memo1.Lines.Add(s);
end;
我需要打印矩阵中的值,这些值可能从整数到实数不等。作为示例,我的程序使用的矩阵名为 kernel,如下所示:
kernel[0,0]:= 1/16;
kernel[0,1]:= 2/16;
kernel[0,2]:= 1/16;
kernel[1,0]:= 2/16;
kernel[1,1]:= 4/16;
kernel[1,2]:= 2/16;
kernel[2,0]:= 1/16;
kernel[2,1]:= 2/16;
kernel[2,2]:= 1/16;
问题出现在打印每个数字时,因为我找不到一种方法来以易于阅读的方式打印像 1/16
这样的数字,程序显示像 6.2500000000000000000000000000E-2
没关系,但我更喜欢 0.0625
甚至更好的东西 1/16
。有没有人承认允许我这样做的格式设置方式?
每个数组元素包含分数的值。
要将值写成分数,您可以简单地将分子计算为数组元素与分母的乘积。
我更喜欢使用 Format()
功能来设置显示格式。
给定您显示的数组,两个索引变量 a
和 b
以及分母
denominator := 16;
for a := 0 to 2 do
for b := 0 to 2 do
begin
s := format('kernel[%d,%d] = %d/%d',[a,b,round(kernel[a,b]*denominator),denominator]);
memo1.Lines.Add(s);
end;