Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > калькулятор для сайта


Автор: virt117 20.6.2012, 23:43
Написал простой скрипт калькулятора для своего сайта, но как сделать что бы он работал с дробными числами не знаю, прошу помочь.
Код

<html> 
 <head> 
 <script language="JavaScript"> 
 <!-- 
 function recalc() 
 { 
 document.getElementById ('fieldRes').innerHTML=parseInt(document.getElementById('field1').value)*parseInt(document.getElementById('field2').value); 
 } 
 //--> 
 </script> 
 </head> 
 <body> 
 
 
<tr> 
<td style="padding-right:10px;">Вид услуги</td><BR> 
<td>
<select name="b" id="field2" onchange="recalc()" style="width:150">
<option value="0" selected="selected">Выбрать...</option>
<option value="7">1</option>
<option value="8">2</option>
<option value="15">3</option>
<option value="33">4</option>
</select>
</td> 
</tr> 
 

Автор: Aliance 21.6.2012, 08:30
parseInt заменить на parseFloat

Автор: virt117 23.6.2012, 17:00
Все равно что то не получается при вводе в первую графу например цифры 7 выводит не 5.6 а 5.6000000000000005 в чем ошибка..
Код

<html> 
 <head> 
 <script language="JavaScript"> 
 <!-- 
 function recalc() 
 { 
 document.getElementById ('fieldRes').innerHTML=parseFloat (document.getElementById('field1').value)*parseFloat (document.getElementById('field2').value); 
 } 
 //--> 
 </script> 
 </head> 
 <body> 
 
<tr> 
<td style="padding-right:10px;">Вид услуги</td><BR> 
<td>
<select name="b" id="field2" onchange="recalc()" style="width:150">
<option value="0" selected="selected">Выбрать...</option>
<option value="0.8">1</option>
<option value="0.15">2</option>
<option value="8">3</option>
<option value="0.14">4</option>
<option value="33">5</option>
<option value="0.6">6</option>
</select>
</td> 
</tr> 
 
 <tr> 
<BR><BR><td style="padding-right:10px;">Количество:</td>
 <BR><input type=text id="field1" onKeyUp=recalc() value=0><BR> 
<BR>
 <td style="padding-right:10px;">Сумма к оплате:</td><BR> 
 <td width=30%><span id="fieldRes">0</span></td> 
<td style="padding-right:10px;">руб.</td> 
 </tr> 
 </table> 
 </body> 
 </html>
 

Автор: targetkeeper 24.6.2012, 14:56
Добавьте в скрипт функцию:

Код

function price_format(o) {
    return Number(o).toFixed(2);
}


2 - количество цифр после запятой. Вызывать нужно после всех вычислений перед выводом. Код в результате будет такой:

Код

document.getElementById('fieldRes').innerHTML =
        price_format(parseFloat(document.getElementById('field1').value) * parseFloat(document.getElementById('field2').value));

Автор: virt117 24.6.2012, 16:29
Большое спасибо, все работает.   smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)