NAN
、INF
、-INF
の入力が正しく処理されるようにいくつかのコードをテストします。通貨の値をNAN、INFまたは-INFに設定しますか?
iはthere exists functions that returnNAN
、INF
と-INF
知っているが、Double
として:私の場合を除き
unit IEEE754;
...
function NAN: Double;
function PositiveInfinity: Double;
function NegativeInfinity: Double;
私はCurrency
は、これらの3つのエッジの場合の値のうちの1つである場合をテストする必要があります。残念ながらあなたはDouble
にこれらのいずれかを変換することはできません。Currency
にDouble
NAN
を変換する際
Test(NAN);
procedure Test(const Value: Currency);
...
EInvalidOp
無効な浮動小数点演算は例外があります。
可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');
}
あなたの追加のコードはどうなっていますか?通貨**に指数**はありません。 –
あなたはコードのスニペットを見ていて、何をテストしているのか分かりません。 'Exponent'は、あなたが思い出しているように、通貨を' Digits'と 'Exponent'に変換するDelphiの' FloatToDecimal'によって返される "Exponent"です。 (http://stackoverflow.com/questions/7069204/how-to-convert-float-or-currency-to-a-localized-string) –
確かに。私はあなたが理解できるコード以外のコードを見ていません。だからなぜそれが掲示されたのだろうか。私はFloatToDecimalが何をしているかを知っています、そして、それはCurrencyパラメータの場合にあなたが期待するものではありません**。私はあなたのコードが何らかの証拠であると思われますが、誰もそれに従うことができないので、その目的にはうまく機能しません。 –