2017-10-15 8 views
-1

私は検索し、私の質問に関連するこの1つだけを見つけましたが、正確には同じではありません。私はtoPixisionではなくtoFixedを使用しています。ここで Why does toPrecision return a String?javascriptのparseFloatが私のために文字列型を返すのはなぜですか?

は私のコード

var oldv = parseFloat(document.getElementById('total').textContent).toFixed(2); 
alert(typeof oldv); // returns string 
var testv = parseInt(document.getElementById('total').textContent); 
alert(typeof testv); // returns number 

である私は、さらに数学の手順が必要なので、文字列型は台無し... なぜ?の解き方? TIA

ドキュメントで説明したように
+5

[ 'toFixed'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)と['toPrecision'](https://developer.mozilla.org/en-US/)にあります。 docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision)は両方とも文字列を返します。ドキュメントをお読みください。 _ "どのように解決する?" _ - あなたの目標は何かに依存します。 – Xufox

答えて

3

toFixed戻り

あなたができ、数値として返された結果を使用する必要がある場合には、固定小数点表記

を使用して、指定された数値を表す文字列使用組み込みオブジェクトNumber

var oldv = parseFloat(Math.PI).toFixed(2); 
 

 
console.log(oldv); 
 
console.log(typeof oldv); // returns string 
 

 
var num = Number(oldv); 
 
console.log(num); 
 
console.log(typeof num); // returns number

+1

ありがとうございます。これは機能します。 –

+0

これは私にとって紛らわしい動作です。 'toFixed'は' Number'を返さなければなりません。 – Taurus

2

Number.prototype.toFixed()関数は、ドキュメントfound hereに従って文字列型を返すことになっています。

あなたは数字で、さらに算術演算を実行する必要がある場合は、変数名(+)はそうのようなhereを文書化する前に、単項プラス演算子を使用して戻って数値形式にそれを強制することができます

var oldv = parseFloat(document.getElementById('total').textContent).toFixed(2); 

alert(typeof oldv); // Returns string 

alert(typeof +oldv); // Returns number 
関連する問題