Creo que esto se responde mejor con un ejemplo.
Digamos que usted tiene los siguientes datos:
var products = [
{
"title": "Really Nice Pen",
"price": 150
},
{
"title": "Golf Shirt",
"price": 49.99
},
{
"title": "My Car",
"price": 1234.56
}
]
Usted desea mostrar cada uno de estos productos con el título y el precio formateado. Vamos a intentarlo utilizando toPrecision
primera:
document.write("The price of " + products[0].title + " is $" + products[0].price.toPrecision(5));
The price of Really Nice Pen is $150.00
Se ve bien, por lo que se podría pensar que esto funcionará para los otros productos también:
document.write("The price of " + products[1].title + " is $" + products[2].price.toPrecision(5));
document.write("The price of " + products[2].title + " is $" + products[2].price.toPrecision(5));
The price of Golf Shirt is $49.990
The price of My Car is $1234.6
No tan bueno. Podemos solucionar esto cambiando la cantidad de dígitos significativos para cada producto, pero si estamos iterando sobre la matriz de productos que podrían ser complicados.Vamos a usar toFixed
lugar:
document.write("The price of " + products[0].title + " is $" + products[0].price.toFixed(2));
document.write("The price of " + products[1].title + " is $" + products[2].price.toFixed(2));
document.write("The price of " + products[2].title + " is $" + products[2].price.toFixed(2));
The price of Really Nice Pen is $150.00
The price of Golf Shirt is $49.99
The price of My Car is $1234.56
Esto produce lo que se esperaba. No se trata de adivinar, y no hay redondeo.
Bah, he publicado en julio de este 2010, y no aprendí sobre w3fools hasta este año. Si bien los tontos tienen razón sobre algunas cosas, no todo en las escuelas es incorrecto. Gracias por señalar que necesito actualizar esta publicación; lo hará en un momento. – Pops
'toPrecision (x)' no proporciona 'x' longitud total', formatea una cantidad de dígitos significativos dados. Por ejemplo, '0.0000022.toPrecision (1)' devolvería '0.000002'. –
Acabo de visitar w3fools y no estaba convencido en absoluto. Ni siquiera veo ningún argumento. Todo lo que veo es un anuncio de otros dos sitios. –