Ich brauche alle Werte auf zwei Dezimalstellen gerundet. Also 1.401 sollte auf 1.40 runden, aber Math.Round(value, 2)
Runden auf 1.4.Math.Round nicht die nachlaufende Null
Wie kann ich die nachfolgende Null erzwingen?
Ich brauche alle Werte auf zwei Dezimalstellen gerundet. Also 1.401 sollte auf 1.40 runden, aber Math.Round(value, 2)
Runden auf 1.4.Math.Round nicht die nachlaufende Null
Wie kann ich die nachfolgende Null erzwingen?
1.4
ist die gleiche wie 1.40
- Sie wollen einfach nur anders angezeigt werden soll. Verwenden Sie ein Format-String, wenn ToString
Aufruf - wie value.ToString("0.00")
1.4 == 1.40
Wenn Sie die Zahl..i.e. formatiere es in eine Zeichenkette.
.ToString("N2");
Die Hinter Null ist eher eine Formatierung als ein Wert Problem, so verwenden
foo.ToString("0.00")
Die Hinter Null nur eine Präsentation ist. Mathematisch sind 1.40
und 1.4
gleichwertig.
Verwenden Formatierung, statt es mit den zwei Dezimalstellen zu präsentieren:
String.Format("{0:0.00}", 1.4);
or
yourNumber.ToString("0.00");
Es ist eine Zahl, so dass es keine Hinter Null hat - Sie können es Text und Kraft machen müssen (Doppel?) eine nachlaufende Null.
Ich weiß, das ist eine alte Frage, aber könnte jemand helfen!
Ich benutze eine C# xml-Klasse zu füllen und dann zu xml serialisieren. Einer der Werte ist ein Doppel. Wenn ich dem Wert eine '7' zuweise, wird diese auf '7' serialisiert, wenn ich tatsächlich '7.00' benötige. Der einfachste Weg, runden das war genau das zu tun:
foo = doubleValue + 0.00M
Und das macht den Wert 7,00 statt nur 7. dachte, das war besser als ein ToString tun und es dann wieder Parsen.
Es hat damit zu tun, ob Sie eine Dezimalzahl oder ein Doppel verwenden.
Während intern (wie geht aus der Source Code) Math.Round()
die nachfolgenden Nullen sogar auf einer Doppel bewahrt, noch die Tatsache, dass sie als Doppel gespeichert wird automatisch alle nachfolgenden Nullen Speicher verursacht
Also, wenn Sie entfernen Möchten Sie Tailing-Nullen verwenden, können Sie entweder die Zeichenfolgenanzeigefunktionen verwenden, um sie zu formatieren, da andere geantwortet haben, oder sicherstellen, dass der ursprüngliche Wert als Dezimalzahl übergeben wird (intern wird Decimal.Math.Round
verwendet, was nur Dezimalstellen betrifft) das Ergebnis nicht zu einem Doppel zu machen und es auch nicht in einer Doppelvariablen zu speichern.
In ähnlicher Weise, wenn Sie eine Dezimalzahl haben und keine nachgestellten Nullen wollen, werfen Sie sie einfach auf ein Double (Sie können entweder die Eingabe an Math.Round
oder das Ergebnis, es spielt keine Rolle so lange wie irgendwo im Weg es wird ein Doppel).
Korrekt. Ich möchte es nur anders darstellen. Vielen Dank! – Blade3