2017-01-16 5 views
1
Runden

ich Stackoverflow Antworten verwendet, um herauszufinden, wie meinen Array zu einer einzigen Konsole Zeile wie diese drucken:C#: Druckarray Linie auf der Konsole, während

console.writeline(string.Join(", ",myArray)); 

Meine Array Dezimalwerte ist (es ist ein doppeltes Array) obwohl und es druckt sehr hässlich.

Gibt es eine Möglichkeit, meine Array-Werte innerhalb dieses Befehls zu runden?

Antwort

1

Ein schneller Weg, dies zu tun Linq oder fließend Syntax verwendet ... Das obige Beispiel von 2 Dezimalstellen gerundet ...

console.writeline(string.Join(", ",myArray.Select(q => Math.Round(q, 2)).ToList())); 
+0

Ich würde "" {0: N2} "' als das Format empfehlen. Hier ist eine Frage zu dem Unterschied: http://stackoverflow.com/questions/4506323/difference-between-tostringn2-and-tostring0-00 – JaredStroeb

+0

Ist das * runden * die Zahlen per se, oder ist es nur die ersten beiden drucken Nachkommastellen? Das wird normalerweise als "Floor" betrachtet, was vielleicht eine Art ist, Zahlen zu runden, aber das ist wahrscheinlich nicht das, was die Leute normalerweise als Rundung ansehen. – Eilon

+0

@Eilon hat es getestet. "{0: N2}" und "{0: 0.00}" scheinen beide die Dezimalstellen zu runden. – JaredStroeb

3

Try

Console.WriteLine(string.Join(", ", myArray.Select(x => Math.Round(x, 2)))); 

verwenden Es wird runde alle Werte von myArray zu zwei Dezimalstellen

+0

Auch die [Math.Round-Methode (Dezimal, Int32, MidpointRounding)] (https://msdn.microsoft.com/en-us/library/ms131275 (v = vs.110) .aspx) ist verfügbar für wenn "Banker's Rundung" nicht die gewünschte Methode ist. –