Im Folgenden wird sicherstellen, dass alle großen Zahlen nur auf den Hundertstel (related to this answer) exakt ist:Wie bekomme ich Zahlen mit einer Genauigkeit von .05?
public function round(sc:Number):Number
{
sc = sc * 100;
sc = Math.floor(sc);
sc = sc/100;
return sc;
}
Was ist der optimale Weg, meine Zahlen der Genauigkeit von 0,05 abzurunden? Gibt es etwas schlaues mit Bit-Shifting zu tun, um dieses Ergebnis zu erhalten? Zum Beispiel würde Ich mag:
3,4566 = 3,45
3,04232 = 3,05
3,09 = 3,1
3,32 = 3,3
Dies sollte Math.round() sein, nicht Math.floor(). – Svante
Sein Beispiel benutzte Boden, also benutzte ich Boden. Beachten Sie auch, dass ich die Funktion floor aufgerufen habe, um es deutlich zu machen. –
Um konsistente Ergebnisse für negative Zahlen zu erhalten, sollten Sie auch 0.5 zum "in/precision" Ergebnis hinzufügen, das an Math.floor() übergeben wurde. – Alnitak