2010-08-12 2 views
24

Как я могу округлить десятичное число в Javascript до ближайшего 10? Моя математика довольно мусор сегодня, это может быть 2 часа сна:/Круглые деньги до ближайших 10 долларов в Javascript

Некоторые примеры случаев

$2823.66 = $2820 
$142.11 = $140 
$9.49 = $10 

Я понимаю, что, вероятно, необходимо сочетание Math.Round/пол, но я не могу похоже, ожидаемый результат.

Любая помощь/указатели оценены!

M

+0

Ого, 4 одинаковые ответы – titaniumdecoy

+0

Тогда это должен быть правильный способ сделать это :-) – paxdiablo

+3

Спасибо всем за их ответы, я не могу выбрать, какой ответ принять, поэтому я дам очки Тоби, у которого меньше всего! :) – Marko

ответ

9

Чтобы округлить число до ближайшего 10, сначала разделите его на 10, а затем вокруг него с точностью до 1, а затем умножить его на 10 раз:

val = Math.round(val/10)*10; 

This page имеет некоторые детали. Они идут другим путем (например, округляются до ближайшего 0,01), но теория и практика идентичны - умножают (или делят), округляют, а затем делят (или умножают).

12

Используйте эту функцию:

function roundTen(number) 
{ 
    return Math.round(number/10)*10; 
} 



alert(roundTen(2823.66)); 
2
function round(number, multiplier) { 
    multiplier = multiplier || 1; 
    return Math.round(number/multiplier) * multiplier; 
} 

var num1 = 2823.66; 
var num2 = 142.11; 
var num3 = 9.49; 

console.log(
    "%s\n%s\n%s", // just a formating thing 
    round(num1, 10), // 2820 
    round(num2, 10), // 140 
    round(num3, 10) // 10 
); 
+1

Overkill, но очень полезно. +1 – Josiah

Смежные вопросы