Ich denke, das ist am besten mit einem Beispiel beantwortet.
Angenommen, Sie haben die folgenden Daten haben:
var products = [
{
"title": "Really Nice Pen",
"price": 150
},
{
"title": "Golf Shirt",
"price": 49.99
},
{
"title": "My Car",
"price": 1234.56
}
]
Sie wollen mit dem Titel jedes dieser Produkte angezeigt und formatiert Preis. Lassen Sie uns versuchen, mit toPrecision
zuerst:
document.write("The price of " + products[0].title + " is $" + products[0].price.toPrecision(5));
The price of Really Nice Pen is $150.00
Sieht gut aus, so könnte man denken, dies auch für die anderen Produkte funktionieren:
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
Nicht so gut. Wir können dies beheben, indem wir die Anzahl der signifikanten Stellen für jedes Produkt ändern, aber wenn wir über das Array von Produkten iterieren, das schwierig sein könnte.Lassen Sie uns toFixed
verwenden statt:
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
Dies erzeugt, was Sie erwartet. Es gibt keine Ratenarbeit, und es gibt keine Rundung.
Bah, ich gepostet dies im Juli 2010, und ich habe erst in diesem Jahr von w3fools erfahren. Während Dummköpfe in einigen Dingen recht haben, ist nicht alles an Schulen falsch. Danke, dass du darauf hingewiesen hast, dass ich diesen Beitrag aktualisieren muss. werde es ein bisschen tun. – Pops
'toPrecision (x)' liefert keine 'x' Gesamtlänge ', es wird auf eine Anzahl gegebener signifikanter Stellen formatiert. Zum Beispiel würde '0.0000022.toPrecision (1)' '0.000002' zurückgeben. –
Ich besuchte gerade W3Fools und war überhaupt nicht überzeugt. Ich sehe nicht einmal einen Streit. Alles, was ich sehe, ist eine Werbung für zwei andere Seiten. –