Я плохо знаком с JavaScript и просто обнаруженный toFixed()
и toPrecision()
к круглым числам. Однако я не могу выяснить, каково различие между этими двумя.
Между чем различие number.toFixed()
и number.toPrecision()
?
toFixed (n)
обеспечивает длину n
после десятичной точки; toPrecision (x)
обеспечивает общую длину x
.
Ссылка на w3schools: toFixed и toPrecision
EDIT :
Некоторое время назад я узнал, что w3schools не совсем лучший источник, но я забыл об этом ответе, пока не увидел, ээ, "восторженный" комментарий kzh.Вот дополнительные ссылки из Mozilla Doc Center дляtoFixed ()
и дляtoPrecision ()
. К счастью для всех нас, MDC и w3schools согласны друг с другом в этом случае.
Для полноты, я должен упомянуть, что toFixed ()
эквивалентен toFixed (0)
и toPrecision ()
просто возвращает исходный номер без форматирования. .
Я считаю, что первый дает фиксированное количество десятичных знаков, тогда как второй дает фиксированное количество значащих цифр.
Math.PI.toFixed(2); // "3.14"
Math.PI.toPrecision(2); // "3.1"
Кроме того, toPrecision
вернет экспоненциальное представление , если число целых цифр превышает указанную точность.
(Math.PI * 10).toPrecision(2); // "31"
(Math.PI * 100).toPrecision(2); // "3.1e+2"
РЕДАКТИРОВАТЬ: Да, и если вы новичок в JavaScript, я очень рекомендую книгу Дугласа Крокфорда " JavaScript: Хорошие части ".
При определенных обстоятельствах toPrecision ()
вернет экспоненциальную запись, а toFixed ()
- нет.