Помогите с умножением.
Здравствуйте!
Скрипт не хочет считать с дробным числом, отсекает всё после запятой. Подскажите, пожалуйста, что не так?
<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, время: 04:26. |