2016-09-14 13 views
0

私は(変数).toFixed(2)と+(変数).toFixed(2)の違いは何ですか?

(2.3444).toFixed(2) ==> 2.34 

また

+(2.3444).toFixed(2) ==> 2.34 

の主な違いは、それらの両方が同じ結果を与えて何思ったんだけど。その+記号を使用する必要があるときは、誰でも説明できますか?

+1

'それらの両方が同じresults.'を与えることは、彼らのですか?あなたがそれらを実行すると、最初のものは '' 2.34 "を返し、2番目のものは' 2.34'を返します。これは同じ値ではなく、質問で示した値でもありません。 – vlaz

答えて

1

最初に文字列を与え、2番目の文字列に(現在は切り捨てられた)番号を与えます。

var x = 2.344; 
 
var a = x.toFixed(2); 
 
var b = +x.toFixed(2); 
 
console.log(a, typeof a); 
 
console.log(b, typeof b);

単項プラスはconvert it's operand to a numberしようとします。

これが重要な理由は、数字を「追加」すると、最初の文字列連結が文字列連結につながるからです。

var x = 2.344; 
 
var strNumber = x.toFixed(2); 
 
console.log(strNumber); 
 
console.log(strNumber + 5); // Expected: 7.34, actual: 2.345

関連する問題