2015-08-30 2 views
-2

Я пытаюсь ограничить возвращаемый номер только двумя десятичными знаками, но этот код не работает для меня;JS раунд до 2 знаков после запятой

function myFunction() { 
var x = document.getElementById("mySelect").value; 
document.getElementById("demo").innerHTML = "Result is: " + x * 1.09; value = valToRound.toFixed(2); 

}

Что я делаю неправильно?

+0

'valToRound'? Что это? – MinusFour

+0

Ум, вы не назначаете округленное число на innerHTML? – epascarello

ответ

2

Typing в браузере консоли JS

x = 2.71828 
    x.toFixed(2) 
    "2.72" 

ясно, что .toFixed(2) работает

То, что вы сделали неправильно было округление после печати ответ, а не используя правильные переменные.

document.getElementById("demo").innerHTML = "Result is: " + x * 1.09; value = valToRound.toFixed(2); 

Это также хорошая идея, чтобы получить в привычку преобразования строк в числа с parseFloat(). В JS «2» * «2» - «4», но «2» + «2» - «22», если только вы не сначала конвертируете в число.

Если вы делаете это таким образом, он будет работать:

function myFunction() { 
    var x = parseFloat(document.getElementById("mySelect").value); 
    var valToRound = x * 1.09; 
    var value = valToRound.toFixed(2); 
    document.getElementByID("demo").innerHTML = "Result is: " + value; 
} 
Смежные вопросы