Tengo una entrada de moneda y necesito devolver solo dígitos significativos. La entrada siempre tiene dos decimales, por lo que:corta decimales sin usar con javascript
4.00 -> 4
4.10 -> 4.1
4.01 -> 4.01
Así es como estoy haciendo actualmente:
// 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);
}
que trabaja, y tiene un cierto carácter directo a lo que me gusta, pero tal vez hay una manera más bonita.
Supongo que podría usar un bucle y ejecutarlo tres veces, pero parece que será al menos tan voluminoso para el momento en que condicional la instrucción if. Aparte de eso, ¿alguna idea? Imagino que hay una forma regular de hacerlo, también ...
Un flotador puede no tener suficiente precisión para representar con precisión un valor decimal dado; nunca debes usarlos para representar la moneda. –
Eso es verdad. –
Creo que se representarán correctamente siempre que no se realicen operaciones en ellos. Y no puede hacer operaciones en decimal en JavaScript de todos modos (sin una biblioteca decimal que use cadenas o una matriz de enteros internamente). – Nosredna