- toFixed
- См. также
- Отправить комментарий
- Учебник javascript
- Основные элементы языка
- Сундучок с инструментами
- Интерфейсы
- Все об AJAX
- Оптимизация
- Разное
- Number.prototype.toFixed()
- Синтаксис
- Параметры
- Возвращаемое значение
- Выбрасываемые исключения
- Примеры
- Пример: использование toFixed
- Спецификации
- Совместимость с браузерами
- Смотрите также
- Found a content problem with this page?
- Метод toFixed — Число знаков после запятой
- Метод toFixed — Число знаков после запятой
- Метод toFixed — Добавляет НОЛЬ после запятой
- toFixed — это метод!
- Читайте также.
toFixed
Возвращает строковое представление числа без использования экспоненциальной записи, и ровно с fractionDigits цифр после запятой. Число округляется при необходимости, и дробная часть добивается нулями до нужной длины.
Если число больше 1e+21, то метод просто вызывает Number.toString() и возвращает строку в экспоненциальной записи.
Инициирует исключение RangeError, если fractionDigits меньше 0 или больше 20. Хотя некоторые реализации могут поддерживать значения больше 20.
Инициирует исключение TypeError, если объект не является Number.
var n = 12345.6789; n.toFixed(); // 12346: округление, длина дробной части ноль n.toFixed(1); // 12345.7: округление n.toFixed(6); // 12345.678900: добили нулями (1.23e+20).toFixed(2); // 123000000000000000000.00 (1.23e-10).toFixed(2) // 0.00
См. также
При использования метода toFixed необходимо помнить о его не правильной имплементаци в IE6 IE7 IE8.
не верно: 0.6=toFixed()=0
не верно:-0.8=toFixed()=0
верно: 0.6=toFixed()=1
верно: -0.8=toFixed()=-1
var i=0.55555555
i.toFixed(3)
alert (i)
var i=0.55555555
i = i.toFixed(3)
alert (i)
var i=0.55555555
alert (i.toFixed(3))
Метод toFixed округляет число. Например,
var n = 123456.789;
n.toFixed(); // Вернёт строку «123457», а не «123456»
или
n.toFixed(2); // Вернёт строку «123456.79», а не «123456.78»
В вашем случае, Marwell:
var i = 0.55555555;
i.toFixed(3); // Вернёт строку «0.556», а не «0.555»
Что же вернёт метод toFixed() в следующем примере?
var k = 0.6;
k.toFixed(); /* Если число округлить, то получится 1. Но IE возвращает строку «0», хотя другие браузеры возвращают «1». */
Аналогично и .
-0.8.toFixed(); /* Число округляем и получаем строку «-1», но только не IE. IE возвратит строку «0», а все остальные «-1» */
не сторонник IE, но. на наткнулся на такое
.toFixed() в Firefox 21.0, Chrome, Safari и Opera — результатом такой строки
parseFloat(71.175).toFixed(2) будет 71.17 .
а результатом выражения
Math.round(parseFloat(71.175) * 100) / 100 будет 71.18, т.е. результат правильно округленный
при этом IE на тех же выражениях выдает всегда 71.18 ! получается все браузеры дают не совсем правильные результаты . но каждый по-своему.
Попробуйте вывести:
var x = 71.175;
alert(x.toFixed(20));
Проблема в том, что число 71.175 в двоичной записи не может быть задано конечной двоичной дробью. А значит оно не может быть сохранено точно, и при обратном преобразовании к десятичному числу мы получаем 71.1749999.
Именно с этим искаженным числом и работает метод toFixed. Поэтому получаем 71.17, а не 71.18. Все корректно, просто ошибка округления
Чтобы такого не было используйте Math.round()
В чем отличие
toFixed от
toPrecision
оба возвращают строковое адекватное округление!?
Marwell, читаем внимательно:
toPrecision:
Округляет до общего количества цифр вне зависимости: после запятой или нет.
То есть:
/toPrecision(4)/
-40: -40.00
4: 4.000
400: 400.0
40000: 4.000e+4
toFixed:
Возвращает строковое представление числа без использования экспоненциальной записи, и ровно с fractionDigits цифр после запятой. Число округляется при необходимости, и дробная часть добивается нулями до нужной длины.
То есть:
/toFixed(3)/
-40: -40.000
4: 4.000
400: 400.000
40000: 40000.000
Интересный вопрос, а если числа не до целых округляются, а до 6-го знака? И если не 0,6, а скажем 2,0000006? Сохраняется ли баг IE?
Почему-то FireFox при округлении до 6 знаков округляет 2,0000005 (половину от одной миллионной) до 2,000001 (до одной миллионной), а C#, естественно, (два варианта Math.Round(decimal) — вниз либо к ближайшему «четному»), т.е. всегда до 2.
Почему так? Как округлить число на js правильно?
Фантастический вопрос.
Для начала вам нужно научиться считать до 6 и выучить правила округления.
А потом попытайтесь найти 10 совпадений между зеленым и мокрым, громким и холодным, ну и между FireFox и С#
Я вот такие вещи toFixed(3) — не кроссбраузерные, если и запоминаю, то только для того что бы неиспользывать.
allSumma=Math.round(allSumma*10)/10; // *.3
allSumma=Math.round(allSumma*100)/100; // *.03
allSumma=Math.round(allSumma*1000)/1000;// *.003
В школе математику надо не прогуливать хотя бы в начальных классах
Делить на 10, 100, 1000 опасно. Потом при печати может получиться 123.39999999996 вместо 123.4
toFixed — добивает еще в конце 0. Math.round(allSumma*10)/10; — не добъет 0 в конец.
Я вот такие вещи toFixed(3) — не кроссбраузерные — согласен, в мазиле не работает
но там где работает наблюдаю:
var str = 990637949789927.2 ; str..toFixed(2) ;
Автор, забабань комент или статейку как сделать такое:
toFixed( X ), рубит всё до икса,
toPrecision возврощает экспоненциальну запись, которую невозможно читать, без привычки 5 лет в какой-нибудь физ.мат с уклоном в физику и в такие записи. я не могу.
Писать целую функцию для одного float, — кажется ужасным и страшным по нагрузке.
что бы все цифры после запятой были видны. Без всяких экспонент без е без степеней.
просто строчку. float ( f ) = 1.234567812312 — вот все их и нужно рисовать.
начался период — можно срубить.
а если 1.234560000 — то рубить под шестёрку. и т.д
я понимаю что ПИ будет непонятно как рисовать. Но эти экспоненты, прямо разрезают глаз.
Почему в Windows98 в IE5 не срабатывает этот код:
var xk1 = parseFloat(xp1.toPrecision(13));
xk1 = parseFloat(xk1.toFixed(13));
var xk2 = parseFloat(xp2.toPrecision(13));
xk2 = parseFloat(xk2.toFixed(13));
var xk3 = parseFloat(xp3.toPrecision(13));
xk3 = parseFloat(xk3.toFixed(13));
А существует ли такая же функция, но только чтобы нули после точки стирались ?
То есть toFixed(2) для 123 оставлял бы 123 (без 2 нулей), а 123.123 менял бы уже на 123.12 как положено.
Можно на единицу умножить то, что получилось после toFixed
var n = 12345.6789;
alert(n);
n.toFixed(1);
alert(n);
Выдает 12345.6789
в чем причина?
попробуйте n=n.toFixed(1) перед вторым алертом
а как округлить до 10?
например число 2543 округлить до 2540?
toFixed(-1) не работает
можно разделить на 10, затем округлить до целого и умножить на 10
[php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [php] [js] [html] [css] [html] [html] [/html][/html][/css][/html][/js]
Если вам нравятся apk-приложения, загляните на softmany, авторитетный сайт номер один на сегодняшний день.
Отправить комментарий
- Полезные.
- Дополняющие прочитанное.
- Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
Для остальных вопросов и обсуждений есть форум.
Учебник javascript
Основные элементы языка
Сундучок с инструментами
Интерфейсы
Все об AJAX
Оптимизация
Разное
- Асинхронное программирование
- Google Gears в деталях
- Javascript Flash мост
- Букмарклеты и правила их написания
- О подборке книг на сайте
- Почему — плохо
- Способы идентификации в интернете
- Уровни DOM
- Что почитать?
- Шаблонизация с javascript
- Юнит-тесты уровня браузера на связке Selenium + PHP.
- Справочники: Javascript/HTML/CSS
- Система сборки и зависимостей Google Closure Library
- Хранение данных на клиенте. DOM Storage и его аналоги.
- 10 лучших функций на JavaScript
- Thanks for sharing. I hope this will be.
7 часов 2 минуты назад - Great blog! Can you explain me more?
10 часов 16 минут назад - Xanax Kopen (Alprazolam) 2 mg online
12 часов 4 минуты назад - a href=»https://handgun-shop.
13 часов 17 минут назад - a href=»https://handgun-shop.
13 часов 17 минут назад - a href=»https://handgun-shop.
13 часов 17 минут назад - a href=»https://handgun-shop.
13 часов 17 минут назад - a href=»https://handgun-shop.
13 часов 28 минут назад - I really like your content i have also.
13 часов 51 минута назад - https://wonkachocolatebars.com
1 день 3 часа назад
Number.prototype.toFixed()
Метод toFixed() форматирует число, используя запись с фиксированной запятой.
Синтаксис
Параметры
Необязательный параметр. Количество цифр после десятичной запятой; может быть значением между 0 и 20 включительно, хотя реализации могут поддерживать и больший диапазон значений. Если аргумент опущен, он считается равным 0.
Возвращаемое значение
Строка, представляющая numObj , не использующая экспоненциальную запись и содержащая ровно digits цифр после десятичной запятой. Число округляется при необходимости, а дробная часть дополняется нулями таким образом, чтобы иметь указанную длину. Если numObj больше или равно 1e+21 , этот метод просто вызывает метод Number.prototype.toString() и возвращает строку в экспоненциальной записи.
Выбрасываемые исключения
Если параметр digits слишком маленький или слишком большой. Значения между 0 и 20 включительно не будут порождать исключение RangeError . Также реализации могут поддерживать большие и меньшие значения.
Если этот метод вызывается на объекте, не являющимся объектом Number .
Примеры
Пример: использование toFixed
var numObj = 12345.6789; numObj.toFixed(); // Вернёт '12346': обратите внимание на округление, дробной части нет numObj.toFixed(1); // Вернёт '12345.7': обратите внимание на округление numObj.toFixed(6); // Вернёт '12345.678900': обратите внимание на дополнение нулями (1.23e+20).toFixed(2); // Вернёт '123000000000000000000.00' (1.23e-10).toFixed(2); // Вернёт '0.00' 2.34.toFixed(1); // Вернёт '2.3' -2.34.toFixed(1); // Вернёт -2.3 (в соответствии с приоритетом операций, // отрицательные числовые литералы не возвращают строку. ) (-2.34).toFixed(1); // Вернёт '-2.3' (. до тех пор, пока вы не заключите их в круглые скобки)
Спецификации
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Found a content problem with this page?
This page was last modified on 7 нояб. 2022 г. by MDN contributors.
Your blueprint for a better internet.
Метод toFixed — Число знаков после запятой
Здесь будет рассмотрен метод toFixed , который также работает с числовыми объектами Number и, который фиксирует указанное количество знаков после запятой.
Что это значит и где используется метод toFixed в Javascript? Далее рассмотрим примеры.
Метод toFixed — Число знаков после запятой
Как Вы, скорее всего, замечали, цены на товары часто представлены в формате 10.50 , то есть к дробному числу 10.5 добавляется ноль .
Но если пробовать вывести на экран 10.50 обычным способом, то мы увидим лишь 10.5 , то есть то же самое дробное число, только без нуля на конце .
В результате мы видим 10.5 , а нужно 10.50 . Вывести число в нужном формате поможет метод toFixed , который фиксирует число знаков после запятой . См. пример ниже.
document. write ( price. toFixed (2) );
Итак, при помощи метода toFixed удалось зафиксировать после запятой 2 знака и вывести число в нужном формате 10.50 .
Метод toFixed — Добавляет НОЛЬ после запятой
Вернемся к предыдущему примеру и попробуем указать в качестве параметра метода toFixed число 3 .
document. write ( price. toFixed (3) );
Таким образом, метод toFixed добавил к дробному числу 10.50 еще один ноль .
До этого момента мы работали с дробным числом 10.50 . А что если в качестве числового объекта взять целое число и добавить к нему метод toFixed ?
document. write ( price. toFixed (3) );
Вот так работает метод toFixed — фиксирует (или добавляет) указанное число знаков (нулей) после запятой.
Из приведенных примеров видно, что уже существующую дробную часть числа 10. 5 (пять десятых), метод toFixed оставляет и считает эту цифру за 1-ый знак после запятой. И далее добавляет нули. 10.5 00 (2-ой, 3-ий и т.д. знаки)
Если же метод работает с целым числом, т.е. дробной части не существует, то, как 1-ым , так и последующими знаками после запятой будут нули 10. 000 .
toFixed — это метод!
В предыдущих заметках этой темы были рассмотрены функции isNaN , parseInt , parseFloat и Number
При работе с функциями в JavaScript числовой объект указывается как ее параметр .
функция название функции ( числовой объект — это параметр функции )
Но вернемся к методу toFixed и озвучим еще раз , что toFixed именно метод .
Чтобы вызвать метод в JavaScript, необходимо добавить его к числовому объекту через точку «.»
числовой объект . метод ( параметр метода )
Это отступление было направлено на то, чтобы лишний раз заострить внимание на некоторых тонкостях синтаксиса языка javascript .
Читайте также.
Метод write() объекта document
Добавление элементов в массив
Что нужно для изучения javascript?
Экранирование кавычек в Javascript
Поиск ошибок в JavaScript
Создание переменных — Присвоение значений переменным