2012-01-14 12 views
2

私は、このような何かをするスクリプトを書いています:Math.pow(-2,1.5)。結果は約-2.82843になりますが、代わりにJavaScriptはNaNを返します。 (私はGoogle Chrome 17とMozilla Firefox 11の両方でこれを試しました。)指数がMath.pow(-2,3)などの整数である場合、Javascriptは正解を返します(この場合は-8です)。正の数も正しく非整数のべき乗になります。 Math.pow(2,1.5)はおよそ2.8284271247461903と評価されます。 Javascriptで非整数の値に負の値の値を計算する方法はありますか?JavaScriptの整数でない整数への負の数

答えて

8

Math.pow(-2, 1.5)は、-2と等しい-2の実数が電源1.5に割り当てられていないため、NaNを返します。このプロパティには複素数がありますが、Math.pow()は複素数を使用した計算を行いません。

この単純な変換これが事実であることを実証している:

(-2)1.5 =(-2) *(-2)0.5 =(-2)* SQRT( - 2)=(-2)* i * sqrt(2)= -2i * sqrt(2)

+0

Javascriptで複素数を計算するために使用できるライブラリはありますか? – wecsam

+0

また、私が-2^1.5を電卓に入力すれば、それは私に実数を与えるのですか? – wecsam

+0

1つのプロトタイプといくつかの関数で実装するのは簡単です(複雑な解析を行うには、すべての入門書に必要な数式が必要です)。 [Google検索](http://google.com/#q=complex%20numbers%20javascript%20library)は、[this](http://www.java2s.com/Code/JavaScript/Language-Basics/Complexclasstorepresentcomplexnumbers)になります。 htm)といくつかの他の。 pow()やsqrt()のような操作が不足しているように見えますが、実際の関数で表現するのは比較的簡単です(複雑な関数の多値性がありますが、 –

関連する問題