Как в JavaScript округлить до целых чисел?


93

У меня есть следующий код для вычисления определенного процента:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

То, что я хочу получить в результате, - это точное число, 43и если общая сумма равна, 43.5ее следует округлить до44

Есть ли способ сделать это в JavaScript?

Ответы:


169

Используйте Math.round()функцию, чтобы округлить результат до ближайшего целого числа.


мне тоже помогли! :) Спасибо за ссылку на MDN, приятель :)
Афзал Ахмад Зишан

1
Автор ссылки на @Jeremy. Спасибо, что вставили его - это сделало начало работы с SO намного интереснее, когда пятый ответ, который я когда-либо написал, получил столько же голосов, сколько и этот, что, безусловно, было связано с ссылкой. :-)
hmakholm ушел из-за Моники

2
Разве OP не хотел округлять ВВЕРХ? Если это так, возможно, Math.ceil () будет более подходящим
martellalex

1
@martellalex: Исходя из вопроса, OP хотел, чтобы 43,333 округлялось до 43, но 43,5 округлялось до 44, что точно соответствует поведению ECMAScript Math.round () округления до ближайшего и выполнения точных полуцелых чисел до положительной бесконечности.
хмахольм ушел над Моникой

66
//method 1
Math.ceil(); // rounds up
Math.floor(); // rounds down
Math.round(); // does method 2 in 1 call

//method 2
var number = 1.5; //float
var a = parseInt(number); // to int
number -= a; // get numbers on right of decimal

if(number < 0.5) // if less than round down
    round_down();
else // round up if more than
    round_up();

один или комбинация решат ваш вопрос



8

Используйте Math.roundдля округления числа до ближайшего целого числа:

total = Math.round(x/15*100);

4

очень емкое решение для округления числа с плавающей запятой x:

x = 0|x+0.5

или если вы просто хотите положить поплавок на пол

x = 0|x

это побитовое или с int 0, которое отбрасывает все значения после десятичной

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.