Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Округление числа в JavaScript. Прошу помощи.

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Kins



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
День добрый.
В поле kot вводим число, выбираем в select нужное значение, перемножаем,
результат пишем в поле summa и в поле nds.
Результат-число с множеством знаков после запятой, какая функция в JavaScript
умеет округлить до 2-х знаков после запятой?
 
Простой пример:
-------------------------------------------
<form name=sav_op_gold>
 <input type=text name=kot>
    <select name=massa>
     <option>1</option>
      <option>2</option>
      <option>3</option>
     </select>
<input type=text name=summa>
<input type=text name=nds>
 
<input type=button onClick="Chet(F.kot,F.massa,F.summa,F.nds)" value=Пересчет>
 
<script>
function Chet(tx,sl,tx1,tx2){
tx1.value = sl.options[sl.selectedIndex].text*tx.value //перемножили
tx2.value = tx1.value/6.5555555555 //вычисляем 18% от перемноженного
-получаем, например 12,25468975421854 а вывести надо 12,25 КАК ОКРУГЛИТЬ?
 
}
var F=document.sav_op_gold
</script>
</form>
 Сенькс.
Прошу не пинать ногами, я только учусь... доки читал, не нашел нужную функцию.

Всего записей: 132 | Зарегистр. 30-10-2003 | Отправлено: 16:16 13-10-2004
oid



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Строка в число с плавающей точкой:
parseFloat({Строка});
 
Строка в целое число:
parseInt({Строка},[{Основание}]), где
Основание:
10 - десятеричная (умолчание)
8   - восьмеричная
16 - шестнадцатеричная
 
Математический класс Math:
floor({число}) - ближайшее целое
round({число}) - значение аргумента, округленное до ближайшего целого
 
Пример брошу завтра - запарка на работе! Попользуй последних два, если программировал - догонишь.

Всего записей: 106 | Зарегистр. 17-09-2004 | Отправлено: 17:55 13-10-2004
c0r0ner



злобный доктор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
var res = tx1.value/6.5555555555;
tx2.value = res.toFixed(2);

где 2 - к-во знаков после запятой
 
Добавлено
oid
Зачем так сложно, есть же стандартные ф-ции

----------
Я - сущий ангел. Только крылья в стирке, а нимб на подзарядке.

Всего записей: 742 | Зарегистр. 09-12-2001 | Отправлено: 17:56 13-10-2004 | Исправлено: c0r0ner, 17:58 13-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kins

Цитата:
tx2.value = tx1.value/6.5555555555 //вычисляем 18% от перемноженного  

и что вообще за извращенный способ ?  
18% это будет всего лишь ..
tx2.value = tx1.value*0.18
c0r0ner

Цитата:
Зачем так сложно, есть же стандартные ф-ции

Math и есть стандратные функции.. просто более удобные, так как не всегда нужно именно округление, а, к примеру, число вверху или вниз.
тем более.. Math работает и с ранними версиями.. а это

Цитата:
Any browser that supports ECMAScript version 3 should support toFixed and toPrecision. This roughly equates to Netscape 6.0 and above and IE 5.5 and above

http://www.mredkj.com/javascript/nfbasic2.html

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:45 13-10-2004
Kins



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
и что вообще за извращенный способ ?  
18% это будет всего лишь ..  
tx2.value = tx1.value*0.18

 
tx2.value = tx1.value*0.18      - Это будет 18% от tx1,
tx2.value = tx1.value/6.5555555555  a это 18% из tx1. т.е иногда знаем сумму с НДС, а сам НДС так и вычлиняем.

Всего записей: 132 | Зарегистр. 30-10-2003 | Отправлено: 07:00 14-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kins

Цитата:
tx2.value = tx1.value/6.5555555555  a это 18% из tx1. т.е иногда знаем сумму с НДС, а сам НДС так и вычлиняем.  


Цитата:
tx2.value = tx1.value*0.18      - Это будет 18% от tx1,  
tx2.value = tx1.value/6.5555555555  a это 18% из tx1. т.е иногда знаем сумму с НДС, а сам НДС так и вычлиняем

все равно изврат )  
tx2.value = tx1.value*(0.18/1.18) ... но 5 в периоде вводить )

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 07:05 14-10-2004
Kins



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
все равно изврат )  
tx2.value = tx1.value*(0.18/1.18) ... но 5 в периоде вводить )

а на выходе число с кучей знаков после запятой
 
Thanks всем откликнувшимся, остановился на этом варианте:
 
tx13.value = sl.options[sl.selectedIndex].text*tx12.value
var res = tx13.value/6.5555555555;
tx14.value = res.toFixed(2);

Всего записей: 132 | Зарегистр. 30-10-2003 | Отправлено: 10:05 14-10-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сюда же. о замене toFixed
http://www.merlyn.demon.co.uk/js-round.htm#toF

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:30 08-08-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Округление числа в JavaScript. Прошу помощи.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru