使用两个小数格式化float而不使用.toFixed()

时间:2013-04-08 16:31:26

标签: javascript decimal substring

我有一个漂浮物, var a = 324620.8

我希望它看起来像这样 a = 324620.80

到目前为止,这是我的代码,

    var a_float = a;
    var a_int = parseInt(a);

    d = a_float - a_int;
    if(d <= 0){
        a = a_int+'.00';
    }else{
        if(d < 0 && d > 0.1){
            a = a_int + d + '0';
        }else{
            a = a_float;
        }   
    }

这仅适用于一个十进制数字。 当我有2位十进制数字时,我想让它工作。

.toFixed在某些浏览器中不起作用。

3 个答案:

答案 0 :(得分:4)

回答标题中的问题

  

如何查找浮点数中的小数位数?

'.'的位置与 String 的浮点长度进行比较。

var x = 1.2345,
    x_str = x.toString(),
    decimal_digits = x_str.length - x_str.lastIndexOf('.') - 1;
decimal_digits === x_str.length && (decimal_digits = 0); // case no decimal
decimal_digits; // 4

答案 1 :(得分:0)

JSFIDDLE 使用toFixed("2");

var f = 1.3454545;
f.toFixed(2);

答案 2 :(得分:0)

var decimal = 4.0;
var a = (decimal).toFixed(2); 


console.log(a); // outputs 4.00