Ian*_*oyd 1 delphi nan delphi-5 infinity
我想测试一些代码,以确保它处理NAN
,INF
并-INF
输入正确.
我知道存在返回的功能 NAN
,INF
和-INF
,但是作为Double
:
unit IEEE754;
...
function NAN: Double;
function PositiveInfinity: Double;
function NegativeInfinity: Double;
Run Code Online (Sandbox Code Playgroud)
除了在我的情况下,我需要测试a何时Currency
是这三个边缘情况值之一.不幸的是,你无法将这些中的任何一个转换为Double
:
Test(NAN);
procedure Test(const Value: Currency);
...
Run Code Online (Sandbox Code Playgroud)
将a转换为a 时,存在EInvalidOp
无效的浮点运算异常.Double
NAN
Currency
是否可以指定NAN
一个Currency
?
也许,而不是它是可以指定一个NAN
到Currency
,它是不是没有可能的-我可以忽略这种边缘情况.
我可以忽略这个边缘情况吗?
是否可以"将货币值设置为NAN,INF或-INF?"
{ David Heffernan says it's impossible for a currency to contain INF,-INF or NAN.
So there's no need to test for it.
http://stackoverflow.com/questions/7096966/set-a-currency-value-to-nan-inf-or-inf
//Handle NaN, where exponent is -32767
test(NAN, 'NAN');
//Handle +inf, where exponent is 32767 and Negative is true
test(PositiveInfinity, 'INF');
//Handle -inf, where expondent is 32767 and Negative is true
test(NegativeInfinity, '-INF');
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*nan 11
货币不是IEEE754浮点类型,并且没有NAN或INF值.
该文档解释了Currency实现为64位整数,隐式标度为10000,可能值的范围为-922337203685477.5808至922337203685477.5807.由于这涵盖了64位整数的全部范围,因此没有可用于诸如NAN或INF的标记值的位模式.
归档时间: |
|
查看次数: |
3187 次 |
最近记录: |