Помогите с умножением.
Здравствуйте!
Скрипт не хочет считать с дробным числом, отсекает всё после запятой. Подскажите, пожалуйста, что не так? <form class="user_form" action="" name="form-5"> <select onchange="calc()" id="type_design" class="form-control"> <option selected disabled>-- Продукция из гранита --</option> <option value="4490">African Raimbow</option> <option value="4090">African Red</option> <option value="2990">Azul Noce</option> <option value="2290">Azul Platino</option> <option value="2790">Baltic Brown</option> <option value="6090">Bethel White</option> <option value="2890">Bianco Cristal</option> <option value="1790">Bianco Sardo</option> <option selected disabled>-- Продукция из мрамора --</option> <option value="3990">Arabescato Altissimo II</option> <option value="2690">Arabescato Cervaiole IV</option> <option value="3990">Bardiglio Imperiale</option> <option value="3990">Bianco Carrara C</option> <option value="2690">Bianco Carrara CD</option> <option value="1690">Bianco Carrara D</option> <option value="4290">Bianco Gioia C</option> <option value="1990">Bianco Perlino</option> </select> Кол-во: <input type="text" id="count" value="1" onchange="calc()" /> м<sup>кв</sup> <div>Предварительная стоимость: <span id="result">0</span> руб.</div> </form> function calc() { var type_design = document.getElementById("type_design"); var count = document.getElementById("count"); var result = document.getElementById("result"); var price = 0; price += parseInt(type_design.options[type_design.selectedIndex].value); price = parseInt(count.value) * price; result.innerHTML = price; } |
Цитата:
|
Ух ты, круто! Спасибо! Убрала то, что сказали, теперь считает нормально. :)
А ещё не могли бы подсказать, можно ли сделать, чтобы при вводе кол-ва не с точкой, а с запятой, тоже выводился результат? А то NaN выдаёт. |
|
Цитата:
var val='123,456'; alert(val.replace(',','.')); |
Простой способ привести число, написанное строкой, к числовому типу:
'1.01' * 1 При этом не надо использовать никакие функции. Скорее всего parseInt приводит к эффекту работы с целыми числами, характерной для некоторых языков, когда дробная часть отсекается типа 4/3=1, хотя на самом деле должно получиться 1,333333 Если мешается запятая: '1,01'.replace(/,/, '.') Судя по всему ты пока еще не очень освоилась в этом языке. Вот тебе еще задачка: сложи в JS (прямо в отладчике браузера) .7+.1. Что получишь? Думаю, что не 0.8 А потом попробуй Math.round((.7+.1)*10)/10 Вот и все секреты работы с числами. |
Цитата:
var n = +'1.01'; alert(typeof n); |
Часовой пояс GMT +3, время: 14:07. |