gpt4 book ai didi

delphi - Trunc() 函数

转载 作者:行者123 更新时间:2023-12-03 15:04:20 28 4
gpt4 key购买 nike

看下面的代码,为什么Trunc函数的结果不一样?

procedure TForm1.Button1Click(Sender: TObject);
var
D: Double;
E: Extended;
I: Int64;
begin
D := Frac(101 / 100) * 100;
E := Frac(101 / 100) * 100;
I := Trunc(D);
ShowMessage('Trunc(Double): ' + IntToStr(I)); // Trunc(Double): 1
I := Trunc(E);
ShowMessage('Trunc(Extended): ' + IntToStr(I)); // Trunc(Extended): 0
end;

最佳答案

格式化函数并不总是显示实际数字(数据)。
实数和精度可能很棘手。

看看这段代码,我对我想在屏幕上看到的内容使用了更精确的方法:

  D := Frac(101 / 100);
E := Frac(101 / 100);
ShowMessage(FloatToStrF(D, ffFixed, 15, 20));
ShowMessage(FloatToStrF(E, ffFixed, 18, 20));

看起来D类似于0.010000000000,而E类似于0.00999999999

编辑: Extended 类型比 Double 类型具有更好的精度。如果我们尝试使用 FloatToString() 显示 D 和 E 的值,我们可能会得到相同的结果,即使实际值并不相同

关于delphi - Trunc() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398295/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com