user1664305
user1664305

Reputation: 179

How can I have the value round up in javascript?

I have a code that is inserting the total value into a textbox, however, the math that is performed does not round the number. Based on the code below how can I make this happen?

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;
    }

}
}

Upvotes: 0

Views: 94

Answers (3)

Dot_NET Pro
Dot_NET Pro

Reputation: 2123

Try the following code:

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));

Following is the fiddle link: Demo

Upvotes: 0

Dylan Watt
Dylan Watt

Reputation: 3387

Two things:

You're playing with fire by using implicit type conversion. element.value returns a string, not a number, so you should be using parseInt() or parseFloat() to convert your values to numbers. For instance, if your input has value 3, and you do element.value + 2, the result is 32.

Second, to your question, Math.ceil() rounds a float up to the near integer.

Upvotes: 2

abhi312
abhi312

Reputation: 362

Use round() method to rounds a number to the nearest integer. Example: var a = Math.round(8.70); Answer a = 9;

Upvotes: 0

Related Questions