Decimal.Round output no longer keeps trailing zeros.
authorMarcos Henrich <marcos.henrich@xamarin.com>
Tue, 5 Aug 2014 13:00:12 +0000 (14:00 +0100)
committerMarcos Henrich <marcos.henrich@xamarin.com>
Tue, 5 Aug 2014 13:00:12 +0000 (14:00 +0100)
mcs/class/corlib/System/Decimal.cs

index ac564eb2343dce82d17455127ebaa8be6bf0be91..54ac8dea8ae08d32b464bd9d47832d00f2b9b600 100644 (file)
@@ -574,6 +574,14 @@ namespace System
                        dec_part = Decimal.Floor(dec_part);
                        dec_part /= (10000000000000000000000000000M / p);
                        dec_part = Math.Round (dec_part, mode);
+
+                       // ignore trailing zeros
+                       while (decimals > 0 && (dec_part % 10) == 0) {
+                               decimals--;
+                               dec_part /= 10;
+                               p /= 10;
+                       }
+
                        dec_part /= p;
                        decimal result = int_part + dec_part;