У меня есть ввод валюты и вам нужно вернуть только значимые цифры. Вход всегда имеет два знака после запятой, так:chop unused decimals с javascript
4.00 -> 4
4.10 -> 4.1
4.01 -> 4.01
Вот как я сейчас делаю это:
// chop off unnecessary decimals
if (val.charAt(val.length-1) == '0') { // xx.00
val = val.substr(0, val.length-1);
}
if (val.charAt(val.length-1) == '0') { // xx.0
val = val.substr(0, val.length-1);
}
if (val.charAt(val.length-1) == '.') { // xx.
val = val.substr(0, val.length-1);
}
, который работает, и имеет определенную прямолинейность ему, что я вроде как, но может быть, лучше.
Я полагаю, что я мог бы использовать цикл и пропустить его три раза, но на самом деле кажется, что он будет по крайней мере столь же громоздким к тому моменту, когда я установлю условие if. Кроме этого, любые идеи? Я предполагаю, что есть способ регулярного выражения, это тоже ....
Поплавок может не иметь достаточной точности, чтобы точно представлять заданное значение десятичного; вы не должны использовать их для представления валюты. –
Это правда. –
Я думаю, что они будут представлены правильно, если вы не выполняете на них операции. И вы не можете делать операции в десятичном формате в JavaScript так или иначе (без десятичной библиотеки, которая использует строки или массив целых чисел внутри). – Nosredna