loops - 基本帕斯卡浮点类型(实数)增量似乎无法正常工作

标签 loops floating-point pascal

r:=2.1;
while r <> 4.3 do
begin
    r:= r + 0.1;
    writeln(r);
end;

其中 r 是真实类型,但它不起作用并在科学通知中打印“r”。

我不知道,也许这是编译器舍入错误或类似的错误 我是 pascal 的初学者(实际上被迫使用我真正讨厌的东西)

输出是 enter image description here

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/

相关文章:

带有循环列表的Python调用函数

assembly - 使用 Masm 的 float 数据示例

java - 为什么在 Java 中比较 float 不一致?

javascript - 如何循环遍历数组及其内部对象

JQuery 带有循环和延迟的淡入淡出

excel - 为什么 Excel 不根据 8 字节 IEEE 754 进行舍入

delphi - 如何在循环中定期更改 TLabel 标题?

pascal - Delphi 类型等价和类型相等语法

pascal - TAChart Fit系列的贴合度

loops - 为什么我的 go 协程在处理后卡住了?