0

どこで、なぜなのかわからないまま、私は変な望まない回心に遭遇していNumberますNaN。ここで明らかに何かが欠けていますが、何がわかりません。

どんな提案でも大歓迎です!;)

JavaScriptコードは次のとおりです。

updatedAbsoluteResult = currentlyDisplayedRentability * investment
resultAgainstReferencial = updatedAbsoluteResult - appropriateReferencialRentability * investment

$('#a0').html('currentlyDisplayedRentability: ' + typeof currentlyDisplayedRentability)
$('#a1').html('investment: ' + typeof investment)
$('#a2').html('updatedAbsoluteResult: ' + typeof updatedAbsoluteResult)
$('#a3').html('appropriateReferencialRentability: ' + typeof appropriateReferencialRentability)
$('#a4').html('resultAgainstReferencial: ' + typeof resultAgainstReferencial )
$('#a5').html('resultAgainstReferencial: ' + resultAgainstReferencial )

HTML出力は次のとおりです。

currentlyDisplayedRentability: number
investment: number
updatedAbsoluteResult: number
appropriateReferencialRentability: number
resultAgainstReferencial: number
resultAgainstReferencial: NaN

すべてが数値型ですが、最終結果を返したい場合、結果として「数値ではありません」となります。誰でも理由を知っていますか?

週末をお楽しみください!

4

4 に答える 4

2

数値型は NaN を返すことができ、数値型のままです。updatedAbsoluteResult、適切な参照レンタビリティ、および投資の値をチェックして、それらのいずれかが予期しない値であるかどうかを確認します。その方程式の何かがうまくいかなかった可能性があります。

于 2011-11-11T17:10:58.683 に答える
1

問題は、resultAgainstReferencial が である可能性がありNaNます。次の理由により、結果が得られます。

typeof NaN == "number"

表示するには:

resultAgainstReferencial = NaN;
alert(typeof resultAgainstReferencial);   // alerts "number"

ここでも見ることができます: http://jsfiddle.net/jfriend00/t3ubg/

つまり、上流のどこかで、数値ではないものを使って計算しようとしています。すべての数値入力の値を見て、データが間違っている場所を確認する必要があります。

于 2011-11-11T17:13:10.170 に答える
0

NaNin javascript は、技術的にはまだ typenumberです。これは通常、0 による除算が原因で発生します。別の数学的計算を行うと、NaNも返されNaNます。

于 2011-11-11T17:11:24.427 に答える
0

おそらく皮肉なことに、NaNそれ自体がNumber.

parseInt()どこかで通話に失敗したか、その他の多くの可能性があります。関連するコードを見ずに推測するのは困難です。

于 2011-11-11T17:12:30.543 に答える