2017-01-28 4 views
1

小数点以下の桁数を小数点以下2桁に設定します。 また、私はそれが1つの単一のフォーマット機能で動作するようにしたい。小数点以下の桁数の場合は、小数点以下2桁までの数値を設定します。

今のところ私はこれを使用しています。私がこれを回避するために改善できる方法はありますか?

d3.format(",.2f")(10101); //10,101.00 which must be displayed as 10,000 only 

d3.format(",.2f")(12334.2); //12,334.20 this is okay 

答えて

1

は、私はそれが1つのフォーマット機能

まあで仕事をしたい、それは不可能です。 D3形式の関数は、に合わせることはできません。

2つのフォーマット関数を持ち、渡す数値に小数点以下の桁数があるかどうかを調べることができます。これは、テストする可能性のある方法の1つです。

これは整数に対して0を返します。

その後、ternary operatorでは、あなたが使用しますどのd3.format機能を選択することができます。ここでは

!(number % 1) ? someFormat(number) : otherFormat(number) 

はデモです:

var formatInteger = d3.format(","); 
 
var formatDecimal = d3.format(",.2f"); 
 

 
var number1 = 10101; 
 
var number2 = 12334.2; 
 

 
function format(number){ 
 
return !(number % 1) ? formatInteger(number) : formatDecimal(number) 
 
} 
 

 
console.log(format(number1)) 
 
console.log(format(number2))
<script src="https://d3js.org/d3.v4.min.js"></script>

関連する問題