在 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() 功能来设置显示格式。

给定您显示的数组,两个索引变量 ab 以及分母

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;