javascript сделать числа, кратные 150 - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь получить числа, кратные 150.

(all the num > 0)

if num = 0.333333 => output 150
if num = 149.9 => output 150
if num = 150 => output 150
if num = 150.1 => output 300
if num = 302 => output 450
...

Вот мой код, использующий ceil():

var num = '12';
document.write(Math.ceil((num/150)*150) + "<br />")
// Output 12, not 150;

Как мне это сделать?это?

Ответы [ 4 ]

0 голосов
/ 06 октября 2011
var num = '12';
document.write(Math.ceil(num/150)*150) + "<br />")

Твои скобки немного сбились.

0 голосов
/ 06 октября 2011

Это простая алгебра, сэр:

(num / 150) * 150 = num

Подставляя '12' (да, строка):

(num / 150) * 150 = 12

Если вы хотите, чтобы все числа отображались на кратные 150, просто разделите их на 150 и , затем floor результат, чтобы получить целое число:

150 * math.floor(num / 150)

Или ceil это:

150 * math.ceil(num / 150)
0 голосов
/ 06 октября 2011

Простой способ будет

var num = 12;
var result = 150 * Math.ceil((num * 1.0)/150);

Умножение на 1,0 гарантирует, что входные данные преобразуются в значение с плавающей запятой - в противном случае вы можете получить целочисленное деление и получить 12/150 = 0.

0 голосов
/ 06 октября 2011

У тебя почти было это.Просто умножьте после операции округления:

function ceil150(x) {
    return Math.ceil(x / 150) * 150;
}

alert(ceil150(0.333333));
alert(ceil150(149.9));
alert(ceil150(150));
alert(ceil150(150.1));
alert(ceil150(302));

http://jsfiddle.net/WEdSu/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...