c# 见分进元和见毫进分是对小数的中国情况的特殊处理。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| public static class StringExtensions { public static string ToJFJYString(this decimal number) { return number % 1 != 0 ? (Math.Floor(number) + 1).ToString("f0") : number.ToString("f0"); }
public static string ToJHJFString(this decimal number) { int decimalPlaces = GetDecimalPlaces(number);
if (decimalPlaces == 0) { return number.ToString("f0"); } else { if (decimalPlaces < 3) { return number.ToString(); } else if (decimalPlaces == 3) { if (number.ToString().EndsWith("0")) { return number.ToString("f2"); } else { number = Math.Round(number, 2) + 0.01m; return number.ToString("f2"); } } else { number = Math.Round(number, 2) + 0.01m; return number.ToString(); } } }
private static int GetDecimalPlaces(decimal value) { string[] parts = value.ToString().Split('.'); return parts.Length > 1 ? parts[1].Length : 0; } }
|