Обрезка лишних знаков после запятой>> Порскольку мне нужно, чтобы при любом раскладе было ДВА знака после запятой (нулей, или чего еще - неважно), я написал такую вот функцию, и через нее форматирую. Работает. Лучшего и более оптимального пути тоже не знаю. > > а чем тебя parseInt не устраивает ? > > function formateNumber(num) { > return parseInt(num)+".00"; > } > > или я не так понял ?
Дело в том, что parseInt() преобразовывает числа с плавающей запятой в целые числа. У меня же задача, для числа любого формата (вида, длины), например: 156.5600000000097 156.1 156.191 156
вывести результат с двумя знаками после точки, а если их нет, то с нулями, а если знак один (второй сверху пример) то добавить ноль. Т.е. отформатировать вывод.
Для вышеуказнынных чисел моя функция выведет: 156.56 156.10 156.19 156.00
Вот и все. К сожалению, мне это не нравится. Простая задача требует написания отдельной функции. Кстати больший гемморой начинается дальше, если числа нужно округлять как в бухгалтерии, т.е. в большую или меньшую сторону по третьему знаку после запятой. Например (это для денег): 156.456 должно (привыполнеии такой задачи) дать на выходе 156.46 долларов, рублей и т.д.
156.454 - даст 156.45 156.4557 - 156.46 (в таком варианте анализируются последующие значения) т.е. 156.455555555555555555555556 тоже даст 156.46 (по последней цифре 6)
если мы имеем только 156.455 - то я просто не помню, что там бухгалтера делают и в какую сторону округляют, но это не важно.
Важно другое, что в JavaScript часто приходится анализировать финансовые формы, а механизма преобразования (форматирования) чисел нет. Его одни раз придется написать самому и в дальнейшем подключать эти *.js файлы, каждый раз, когда будет нужно такое форматирование. |