如何在javascript中将值放大?

时间:2015-05-15 04:15:58

标签: javascript rounding

我有一个代码将总值插入到文本框中,但是,执行的数学运算不会对数字进行舍入。根据下面的代码,我该如何实现?

function calculate(){
    var mrc = document.getElementById('box1');
    var days = document.getElementById('box2');
    var total = document.getElementById('box3');
    var reason = document.getElementById('box4');
    var approver = document.getElementById('box5');
    var approvalreason = document.getElementById('box6');
    var custname = document.getElementById('box7');
    var caseid = document.getElementById('box8');
    var intermitent = document.getElementById('rb1');
    var outage = document.getElementById('rb2');

if (outage.checked === true) {
    if (days.value * 5 > mrc.value){
        total.value = (mrc.value / 30) * days.value;
    } else if (days.value > 14) {
        total.value = (mrc.value / 30) * days.value;
    } else { 
        total.value = days.value * 5;
    } 
    } else if (intermitent.checked === true){
    if (days.value * 3 > mrc.value)
    {
        total.value = (mrc.value / 30) * days.value;
    } else if (days.value > 14) {
        total.value = (mrc.value / 30) * days.value;
    } else {
        total.value = days.value * 3;
    }

}
}

3 个答案:

答案 0 :(得分:1)

两件事:

您通过使用隐式类型转换来玩火。 element.value会返回string,而不是number,因此您应该使用parseInt()parseFloat()将您的值转换为数字。例如,如果您的输入值为3,并且您element.value + 2,则结果为32

其次,对于您的问题,Math.ceil()将浮点数舍入到接近整数。

答案 1 :(得分:0)

使用round()方法将数字舍入为最接近的整数。 例: var a = Math.round(8.70); 回答a = 9;

答案 2 :(得分:0)

请尝试以下代码:

function toFixed(value, precision) {
var precision = precision || 0,
    power = Math.pow(10, precision),
    absValue = Math.abs(Math.round(value * power)),
    result = (value < 0 ? '-' : '') + String(Math.floor(absValue / power));

if (precision > 0) {
    var fraction = String(absValue % power),
        padding = new Array(Math.max(precision - fraction.length, 0) + 1).join('0');
    result += '.' + padding + fraction;
}
return result;
}


alert(toFixed(1.0000000,3));

以下是小提琴链接: Demo