2011-07-08 10 views
1

確かに愚かな質問です、許してください。私の顧客は小数点を5桁で表示したい。たとえば、100.34または37.459です。私はval.toPrecision (5);でこれを達成していました。しかし、私の数字が本当に小さくなると、私は自分が望むものを得るのをやめます。たとえば、私の番号が0.000347の場合、0.00034700と表示されます。さて、私はなぜこれをやっているのか理解していますが、わからないのは0.0003を表示する方法です。何かご意見は?JavaScriptの書式設定

+2

それらを扱うhttp://stackoverflow.com/questions/610406/javascript-printf-string-formatをチェックアウトし、彼が望んでいるような第1の回答者のsprintfのリンク – mrk

答えて

2

私たちの問題は、明らかに1より大きい。だから、それらをキャッチし、別途

function SetPrecisionToFive(n){ 
    return (n > 1) ? n.toPrecision (5) : (Math.round(n * 1e4)/1e4).toString(); 
} 
1

toFixedメソッドを使用してこれを実行できます。たとえば:(0.000347).toFixed(4)

+0

は100.34に変更100.34298をtoFixedます? –

+1

'toFixed'のjQuery、あなたは冗談ですか? – katspaugh

+0

なぜ 'toFixed'を使うためにjQueryを使用する必要がありますか? –

5
Math.round(0.000347 * 1e4)/1e4 

またはtoFixedと:

Number.prototype.toNDigits = function (n) { 
    return (Math.abs(this) < 1) ? 
     this.toFixed(n - 1) : 
     this.toPrecision(n); 
}; 

http://jsfiddle.net/HeQtH/6/

-1

JavascriptをtoFixed()関数は、例えば、固定小数点精度に小さな数字を切り捨てます:

var num = .0000350; 
var result = num.toFixed(5); // result will equal .00003 
+0

'(100.34).toFixed(5)'を実行します。 – katspaugh

+0

@katspaughこのコードスニペットは条件付きです...すべてのケースをカバーするつもりはありません – Kyle