JQuery无法读取确切的总价值

时间:2017-06-02 06:13:23

标签: jquery

function totalrunningtime(){
        var sum = 0;
        var qty = document.getElementById("cutterprodqty").value;
            $(".cutterrumnoofmin").each(function() {
                                                                //add only if the value is number
            if(!isNaN(this.value) && this.value.length!=0) {
                sum += parseFloat(this.value);
            }
            });
                                                            //.toFixed() method will roundoff the final sum to 2 decimal places
            $("#cutterrunningtimetotal").html(sum);
            document.getElementById("cutterrunningtimetotal").value =  sum;

            var total = (sum/qty);
            var t = total.toFixed(3);
            $("#cutterspeed").val(t);


}

当我输入文本字段时 恩。 420/600答案是0.700,当我在计算器中检查答案是0.7

请帮帮忙,非常感谢:)

1 个答案:

答案 0 :(得分:0)

由于您使用的是Number#toFixed,因此它会在小数部分后自动生成3位数(0.700相当于0.7)。

要避免小数部分尾随0使用String#replace方法。

var t = total.toFixed(3).replace(/(\.[^0]*)0+/, function(_, m1){
   // check all are 0 or not 
   return m1.length > 1 ? m1 : '';
})

Regex explanation here

UPDATE:或者通过将结果字符串解析为 @JJJ 的评论来更好的方式。

var t = Number(total.toFixed(3))
//  convert into string using toString() if necessary

参考:Remove insignificant trailing zeros from a number?