Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/99: Рейтинг темы: голосов - 99, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 29.01.2009
Сообщений: 17

Округление до 2-х знаков в дробной части

13.04.2009, 16:41. Показов 19278. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как в JS округлить число до 2-х знаков после запятой?
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.04.2009, 16:41
Ответы с готовыми решениями:

До 2-х знаков в дробной части округление
Как в JS округлить число до 2-х знаков после запятой? Спасибо.

Вывести набор символов, изображающих первые N цифр дробной части вещественного числа
1)Дана строка S, изображающая вещественное число в формате с плавающей точкой, и целое число N (> 0). Вывести набор символов,...

Сортировка массива по дробной части
Здравствуйте всем! Пытаюсь вывести массив в порядке возрастания их дробной части. выводит: 0.9,2.1,2.3,1.2. Не могу понять в чем...

9
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
13.04.2009, 16:52
не знаю как в JS, но матаппарат такой:

x = m * 10^p

x - любое число, m - мантисса, p - порядок в экспоненциальном представлении. m = 0, 1 <= m < 10.

p = [lg abs(x)], если x != 0. [] означает 'целая часть'. Если x = 0, p = 0.

m = x / 10^p.

Что нужо сделать, чтобы округлить только до двух после запятой? Понизить порядок на 2.

p1 = p - 2; m1 = x / 10^p1;

Теперь округляем m1 как обвчное число. После округления умножаем на 10^p1.

Все
1
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
13.04.2009, 16:54
Уточнение

x = m * 10^p,

где m = 0 или 1 <= abs(m) < 10; p >= 0, p - целое число.

Это справедливо для любых действительных чисел x.
0
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
13.04.2009, 17:01
Это общий случай.

Но есть еще проще: выдели дробную часть. Умнож на 100. Округли. Раздели на 100. Сложи целую часть округляемого числа и только что полученное частное.
0
0 / 0 / 0
Регистрация: 16.02.2009
Сообщений: 18
18.04.2009, 11:57
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function formatFloat(src,digits) {
    var powered, tmp, result
    // make sure it is number
    if (isNaN(src))
        return src;
    // 10^digits
    var powered = Math.pow(10,digits);
    
    var tmp = src*powered;
    
    // round tmp
    tmp = Math.round(tmp);
    
    // get result
    var result = tmp/powered;
    return result;
}
0
2 / 2 / 0
Регистрация: 22.02.2010
Сообщений: 14
03.08.2012, 13:13
Оживлю темку за 2003 год
JavaScript
1
2
Math.decimalPlaces = function(num, p){return Math.round(num*(Math.pow(10,p)))/Math.pow(10,p)};
// Math.decimalPlaces(12322.1223,2) => 12322.12
еще есть вариант это сделать так
JavaScript
1
2
decimalPlaces = function(num, p){var a=(''+num); return parseFloat(a.substr(0, a.indexOf('.')+(++p)))}
// decimalPlaces(12312312.1212, 3) => 12312312.121
Буду благодарен кто бенчмаркингом определить какой способ быстрей.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
03.08.2012, 13:26
avastor, а чем вас не устраивает метод numObj.toFixed ([fractionDigits]) ?

Товарищей из 2003 года я понимаю - тогда этого метода в Javasript'e ещё не было.
Но сейчас-то зачем огород городить?
1
2 / 2 / 0
Регистрация: 22.02.2010
Сообщений: 14
03.08.2012, 15:17
Без комментарий
var a = 12312.229
JavaScript
1
2
3
4
a.toFixed(2)
// a.toFixed(2) => 12312.2[B]3[/B]
Math.decimalPlaces(a)
// Math.decimalPlaces(a) => 12312.2[B]2[/B]
Добавлено через 3 минуты
И еще есть жалобы на IE с этим методом
http://javascript.ru/Number/toFixed#comment-6102
достоверность не проверял.

Добавлено через 5 минут
И поповоду 2003 года

Если посмотреть здесь
http://www.w3schools.com/jsref/jsref_tofixed.asp
Этот чудо метод, был введен в
JavaScript Version: 1.5
И посмотреть здесь
http://ru.wikipedia.org/wiki/JavaScript
пункт Версии
***
1.5 (Netscape 6.0, ноябрь 2000; также поздние версии Netscape и Mozilla
Редакция 3 (декабрь 1999). Совместим с третьей редакцией спецификации ECMA-262.
***
То есть ребятам в 2003 году, была уже доступна версия 1.5 и этот метод

Добавлено через 11 минут
P.S. Хотя если человеку нужно было округления, то указанным вами метод вполне подходит, если округлять не нужно, а просто вернуть с количеством знаков после запятой, то мой метод
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
03.08.2012, 15:18
avastor, заголовок темы перечитайте. Она называется ОКРУГЛЕНИЕ.
Ваш же скрипт производит ОТСЕКАНИЕ.

Что есть "округление" - можете узнать здесь.
-----

Ребята по вашей первой ссылке - http://javascript.ru/Number/toFixed#comment-6102 - также, как и вы, тоже не знают про эту математическую операцию, потому и жалуются.
-----

В 2003 году самым популярным был браузер Microsoft Internet Explorer 5.0, в котором работала версия Microsoft JScript 5.0 (не путать с JavaScript - у Майкрософта всё своё).
И этого метода в версии JScript 5.0 не было.
Он появился только начиная с версии JScript 5.5 и в браузере Microsoft Internet Explorer 5.5 (с июля 2001 года).
И этот браузер очень многие себе в те времена не ставили, ибо был он очень тормозным и глючным, и - главное - занимал много места на жёстком диске (а место тогда ценилось, ибо винчестеры были ещё очень дорогими).
0
2 / 2 / 0
Регистрация: 22.02.2010
Сообщений: 14
03.08.2012, 17:13
злой дядя
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.08.2012, 17:13
Помогаю со студенческими работами здесь

Округление константы (более 15 знаков в дробной части)
Здравствуйте, уважаемые форумчане! Решаю несложную задачу, но возникают некоторые проблемы. Есть число E, выраженное известной целой частью...

Округление дробной части
В строке содержится список десятичных чисел, содержащих целую и дробную части, разделенные точкой. Элементы списка разделены запятыми....

Округление дробной части
Помогите пожалуйста!!! Как реализовать метод округления дробной части до 0,1 (0,36 -&gt; 0,4; 0, 33333 -&gt;0,3 и т.д.)????

Округление дробной части
В результате вычислений имеем дробное число. Задача в том, что нужно округлить его то трёх знаков после запятой (0.000), при чём округлить...

Округление дробной части числа
Подскажите плз, как мне сделать что бы из этого - 0.09765625 вышло - 10, или 0.56640625 - 57. Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru