.toFixed not for .0*

前端 未结 3 1610
轻奢々
轻奢々 2020-12-25 12:17

I have a few values:

var one = 1.0000
var two = 1.1000
var three = 1.1200
var four = 1.1230

and function:

function tofixed(         


        
相关标签:
3条回答
  • 2020-12-25 12:52

    The "correct" way to do it is as follows:

    return Math.round(num*100)/100;
    

    If you want to truncate it to two decimal places (ie. 1.238 goes to 1.23 instead of 1.24), use floor instead of round.

    0 讨论(0)
  • 2020-12-25 12:54

    .toFixed(x) returns a string. Just parse it as a float again:

    return parseFloat(val.toFixed(2));
    

    http://jsfiddle.net/mblase75/y5nEu/1/

    0 讨论(0)
  • 2020-12-25 13:16

    Assuming you want String outputs

    function myFixed(x, d) {
        if (!d) return x.toFixed(d); // don't go wrong if no decimal
        return x.toFixed(d).replace(/\.?0+$/, '');
    }
    myFixed(1.0000, 2); // "1"
    myFixed(1.1000, 2); // "1.1"
    myFixed(1.1200, 2); // "1.12"
    myFixed(1.1230, 2); // "1.12"
    
    0 讨论(0)
提交回复
热议问题