pau*_*ohr 0 delphi floating-point compare numbers decimal
我有一个返回浮点值的函数,如下所示:
1.31584870815277
Run Code Online (Sandbox Code Playgroud)
我需要一个函数,它返回TRUE,比较值和点后面的两个数字.
例:
if 1.31584870815277 = 1.31 then ShowMessage('same');
Run Code Online (Sandbox Code Playgroud)
对不起我的英语不好.
有人能帮我吗?谢谢
Dav*_*nan 11
你的问题规范有点模糊.例如,您声明要比较小数点后的值.在这种情况下,这意味着你希望1.31被认为等于2.31.
除此之外,您还需要指定要考虑的小数位数.像1.31这样的数字在二进制浮点中不能完全表示.根据您使用的类型,最接近的可表示值可能小于或大于1.31.
我的猜测是你想要做的是使用round到最近,到特定的小数位数.为此,您可以使用本机的SameValue功能Math.在你的情况下你会写:
SameValue(x, y, 0.01)
Run Code Online (Sandbox Code Playgroud)
测试平等达到容忍度0.01.
这可能不是您正在寻找的,但从您的问题中可以清楚地看出,您还不确切地知道您在寻找什么.如果您的需求与值的十进制表示特别相关,则考虑使用十进制类型而不是二进制类型.在德尔福那将是Currency.
| 归档时间: |
|
| 查看次数: |
1951 次 |
| 最近记录: |