相关疑难解决方法(0)

在Delphi中ABS功能失败

在Delphi6或Delphi 2010中,声明两个Currency类型的变量(vtemp1,vtemp2),并为它们提供0.09的值.使用ABS功能嵌入其中一个变量并将其与另一个进行比较.当编译器监视显示abs(vtemp1)和vtemp2的相同值时,您可能希望比较产生正结果.奇怪的是if语句失败了!

注意: - 只有在处理数字0.09时才会遇到此问题(尝试其他几个接近的值显示正常结果) - 将变量解释为Double而不是货币,问题就不复存在了.

delphi

6
推荐指数
2
解决办法
2141
查看次数

在Delphi中比较货币值时如何避免舍入问题?

AFAIK,Delphi Win32中的货币类型取决于处理器浮点精度.因此,在比较两个货币值时,我遇到了舍入问题,根据机器返回不同的结果.

现在我使用SameValue函数传递Epsilon参数= 0.009,因为我只需要2位十进制数字.

有没有更好的方法来避免这个问题?

delphi floating-point winapi currency

4
推荐指数
2
解决办法
7547
查看次数

标签 统计

delphi ×2

currency ×1

floating-point ×1

winapi ×1