Справочник javascript: toFixed

Форум

Учебник Node.JS скринкаст Стандарт языка

Справочник

Discord чат

 
Статьи Тест знаний Аналоги функций PHP  

toFixed

Синтаксис

numObj.toFixed([fractionDigits])

Аргументы

fractionDigits
Необязательный. Количество цифр после десятичного знака. Это число должно находиться в диапазоне от 0 до 20 включительно. Если не указано, то считается равным 0

Описание, примеры

Возвращает строковое представление числа без использования экспоненциальной записи, и ровно с 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

См. также


Автор: xDev (не зарегистрирован), дата: 13 января, 2011 - 15:11

#permalink

При использования метода toFixed необходимо помнить о его не правильной имплементаци в IE6 IE7 IE8.
не верно: 0.6=toFixed()=0
не верно:-0.8=toFixed()=0
верно: 0.6=toFixed()=1
верно: -0.8=toFixed()=-1


Автор: Marwell, дата: 13 апреля, 2011 - 14:08

#permalink

Почему не работает?

var i=0.55555555
i.toFixed(3)
alert (i)


Автор: Гость (не зарегистрирован), дата: 9 мая, 2011 - 15:47

#permalink

Метод 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" */


Автор: Marwell, дата: 20 августа, 2011 - 09:30

#permalink

В чем отличие
toFixed от
toPrecision
оба возвращают строковое адекватное округление!?


Автор: Олег152 (не зарегистрирован), дата: 3 ноября, 2011 - 15:06

#permalink

Интересный вопрос, а если числа не до целых округляются, а до 6-го знака? И если не 0,6, а скажем 2,0000006? Сохраняется ли баг IE?

Почему-то FireFox при округлении до 6 знаков округляет 2,0000005 (половину от одной миллионной) до 2,000001 (до одной миллионной), а C#, естественно, (два варианта Math.Round(decimal) - вниз либо к ближайшему "четному"), т.е. всегда до 2.

Почему так? Как округлить число на js правильно?


Автор: rus19781 (не зарегистрирован), дата: 12 апреля, 2012 - 02:59

#permalink

Я вот такие вещи toFixed(3) - не кроссбраузерные, если и запоминаю, то только для того что бы неиспользывать.

allSumma=Math.round(allSumma*10)/10; // *.3
allSumma=Math.round(allSumma*100)/100; // *.03
allSumma=Math.round(allSumma*1000)/1000;// *.003

В школе математику надо не прогуливать хотя бы в начальных классах


Автор: Гость (не зарегистрирован), дата: 4 февраля, 2013 - 17:46

#permalink

toFixed - добивает еще в конце 0. Math.round(allSumma*10)/10; - не добъет 0 в конец.


Автор: Гость (не зарегистрирован), дата: 16 июля, 2013 - 10:52

#permalink

Я вот такие вещи toFixed(3) - не кроссбраузерные - согласен, в мазиле не работает

но там где работает наблюдаю:

var str = 990637949789927.2 ;
str..toFixed(2) ;

получаю - 990637949789927.25


Автор: Гость (не зарегистрирован), дата: 9 июля, 2014 - 16:32

#permalink

Автор, забабань комент или статейку как сделать такое:

toFixed( X ), рубит всё до икса,

toPrecision возврощает экспоненциальну запись, которую невозможно читать, без привычки 5 лет в какой-нибудь физ.мат с уклоном в физику и в такие записи... я не могу....

Писать целую функцию для одного float, - кажется ужасным и страшным по нагрузке.

А нужно мне вот что,

что бы все цифры после запятой были видны. Без всяких экспонент без е без степеней.

просто строчку. float ( f ) = 1.234567812312 - вот все их и нужно рисовать.

начался период - можно срубить.

а если 1.234560000 - то рубить под шестёрку. и т.д

я понимаю что ПИ будет непонятно как рисовать. Но эти экспоненты, прямо разрезают глаз.

Как это сделать?


Автор: Гость (не зарегистрирован), дата: 16 июля, 2014 - 05:38

#permalink

Случайно заметил:

var i = -0.00001;
i.toFixed(2);

результат: "-0.00" (с минусом)


Автор: Гость (не зарегистрирован), дата: 10 ноября, 2014 - 17:44

#permalink

Почему в 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));


Автор: Гость (не зарегистрирован), дата: 1 августа, 2015 - 07:15

#permalink

А существует ли такая же функция, но только чтобы нули после точки стирались ?
То есть toFixed(2) для 123 оставлял бы 123 (без 2 нулей), а 123.123 менял бы уже на 123.12 как положено.


Автор: Гость (не зарегистрирован), дата: 14 июля, 2016 - 15:00

#permalink

var n = 12345.6789;
alert(n);
n.toFixed(1);
alert(n);

Выдает 12345.6789
в чем причина?


Автор: Гость (не зарегистрирован), дата: 25 сентября, 2016 - 14:42

#permalink

а как округлить до 10?
например число 2543 округлить до 2540?
toFixed(-1) не работает


 
Поиск по сайту
Содержание

Дерево всех статей

Последние темы на форуме
Forum