r:=2.1;
while r <> 4.3 do
begin
r:= r + 0.1;
writeln(r);
end;
其中 r 是真实类型,但它不起作用并在科学通知中打印“r”。
我不知道,也许这是编译器舍入错误或类似的错误 我是 pascal 的初学者(实际上被迫使用我真正讨厌的东西)
输出是
IDEONE 链接: http://ideone.com/fY5AYM
最佳答案
如果您想在 Pascal 中使用精确的小数,则必须使用 currency
类型。
program Zadanie2;
var r : currency;
begin
r:=2.1;
while r <> 4.3 do
begin
r:= r + 0.1;
writeln(r:0:2);
end;
end.
现在输出结束于 4.30
。
正如您所注意到的,我还更改了格式,这样您就看不到科学计数法了。
代码和结果: http://ideone.com/Hf65v2
关于loops - 基本帕斯卡浮点类型(实数)增量似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27860311/