Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Деление с остатком (https://javascript.ru/forum/misc/50379-delenie-s-ostatkom.html)

GonzoT 24.09.2014 01:44

Деление с остатком
 
Помогите плиз! Допустим я делю число с остатком, а результат округляю. Как мне вернуть в input делимого числа произведение делителя и результата? Вот пример: http://jsfiddle.net/n9b18mvz/

document.divide.onclick = document.divide.onkeyup = function(){
    this.c.value = Math.ceil(this.a.value / this.b.value);
};


A - 233, B - 10 => результат получается 24 (т.к. производится округление до целого числа). Подскажите код как мне вернуть в input A значение 240 (т.е. C * B)

skrudjmakdak 24.09.2014 08:04

var a = 233;
var b = 10;
console.log(Math.ceil(a/b)*b);

GonzoT 24.09.2014 11:35

Спасибо за ответ, но мне ведь нужно, чтобы это значение (240) ни в консоли отображалось, а вместо значения input'а A (233) сразу после вычисления?
С помощью какой переменной можно это вычисление ((Math.ceil(a/b)*b)) ему присвоить?

skrudjmakdak 24.09.2014 12:21

document.divide.c.value = Math.ceil(document.divide.a.value / document.divide.b.value) * document.divide.b.value;

Aetae 24.09.2014 12:50

GonzoT, ты гуманитарий, да?
Элементарнейшей логики и ассоциативного мышления достаточно, чтобы переделать приведённую тобой строчку так, как тебе надо. Про программирование можно вообще ничего не знать. Дай этот пример первоклашке, и он выдаст тебе ответ.

GonzoT 24.09.2014 13:35

skrudjmakdak, твой пример записывает результат в C. А я пытаюсь вернуть этот результат в A, чтобы при этом поля B и С остались теми же. Должно получиться что-то вроде:

Я ввожу 233 / 10 = 24, а при клике, скажем, в неактивном поле в инпутах отображается 240 / 10 = 24

Aetae, да что ты говоришь? Перечитай вопрос! Я не пример решаю, а пытаюсь вернуть в форму A значение делимого, при котором получается целый округленный результат.

Aetae 24.09.2014 13:50

То и говорю. Поменять буковку "c" на буковку "a" - это конечно задача божественной сложности.

skrudjmakdak 24.09.2014 13:56

давайте начнем с событий. и их отделим друг от друга

событие при клике. (onkeyup мы пока вообще выкинули из кода)
document.divide.onclick = function(){
    console.log('event onclick');
    document.divide.a.value = Math.ceil(document.divide.a.value / document.divide.b.value) * document.divide.b.value;
};

мы кликаем по 1му полю, чтобы записать значение. и тут происходит событие click - а значит оно нам считает результат и в первое поле нам выдает какую то фигню. а все почему? потому что считать начинает когда форма еще не до конца заполнена.

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

GonzoT 24.09.2014 13:58

Aetae, так я менял на букву "а". Значение A тогда становится NaN. Попробуй сам на jsfiddle и увидишь :yes:

Aetae 24.09.2014 14:10

GonzoT, а нефиг делить на ноль потому что.:)


Часовой пояс GMT +3, время: 12:54.