如何使用Y.Number.format和decimalPlaces?

时间:2013-12-16 06:38:09

标签: javascript yui number-formatting yui3

我正在尝试使用Y.Number.format格式化我的号码。我需要使用6个decimalPlaces但是如果有一个并且如果源编号没有这个小数位数则不使用正确的零填充。

基本上我需要以下内容:

YUI().use("datatype-number", function(Y) {
    console.log(Y.Number.format(1234.567, {
       thousandsSeparator: ".",
       decimalPlaces: 2
    }
));

//Result is: 1234.57

YUI().use("datatype-number", function(Y) {
    console.log(Y.Number.format(1234.567, {
       thousandsSeparator: ".",
       decimalPlaces: 6
    }
));

//Result is 1234.567

我怎样才能达到上述结果?

1 个答案:

答案 0 :(得分:1)

也许这会起作用(num%1)是num modulo 1.将数字除以1,看看剩下的是什么。

3%2=1
12%5=2
1.0001%1=0.0001

如何使用它的示例:

;YUI().use("datatype-number", function(Y) {
    var num=1.0000;//no decimal places
    var decPlaces=((num%1)>0.0000005)?6:0;
    console.log(Y.Number.format(num, {
       thousandsSeparator: ".",
       decimalPlaces: decPlaces
    }));
    num=1.0010;//some decimal places
    decPlaces=((num%1)>0.0000005)?6:0;//6 if dec places 0 if not
    console.log(Y.Number.format(num, {
       thousandsSeparator: ".",
       decimalPlaces: decPlaces
    }));
    num=1.0000001;//not enough decimal places
    decPlaces=((num%1)>0.0000005)?6:0;//6 if dec places 0 if not
    console.log(Y.Number.format(num, {
       thousandsSeparator: ".",
       decimalPlaces: decPlaces
    }));    
});