602 Stimmen

Runden eines Double auf 2 Dezimalstellen

Wenn der Wert 200.3456 sollte sie wie folgt formatiert werden 200.34 . Wenn es 200 dann sollte es sein 200.00 .

3voto

bryanallott Punkte 234

Aus Ihrer Frage geht hervor, dass Sie auch die Rundung der Zahlen vermeiden wollen? Ich glaube, .format() rundet die Zahlen auf halbe Höhe, afaik?
Wenn Sie also aufrunden wollen, sollte 200,3456 200,35 für eine Genauigkeit von 2 sein. Aber in Ihrem Fall, wenn Sie nur die ersten 2 wollen und dann den Rest verwerfen?

Man könnte sie mit 100 multiplizieren und dann in einen int umwandeln (oder die Untergrenze der Zahl nehmen), bevor man wieder durch 100 dividiert.

200.3456 * 100 = 20034.56;  
(int) 20034.56 = 20034;  
20034/100.0 = 200.34;

Bei sehr großen Zahlen in der Nähe der Grenze könnte es allerdings Probleme geben. In diesem Fall in eine Zeichenfolge konvertieren und substring'ing es würde genauso leicht funktionieren.

0voto

user2068610 Punkte 11
value = (int)(value * 100 + 0.5) / 100.0;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X