Code:if (Value == 0) return "0"; if (Value < 100L * 1000L * 1000 * 1000 * 1000) { if (Value < 1000L * 1000 * 1000 * 1000) { if (Value < 100L * 1000 * 1000 * 1000) { if (Value < 1000 * 1000 * 1000) { if (Value < 100 * 1000 * 1000) { if (Value < 1000 * 1000) { if (Value < 10 * 1000) { if (Value < 1 * 1000) { if (Value < 1 * 100) { return Value.ToString("0.0", CultureInfo.InvariantCulture); } else return Value.ToString("0", CultureInfo.InvariantCulture); } else return Value.ToString("#,0", CultureInfo.InvariantCulture); } else return (Value / 1000.0f).ToString("#,0k", CultureInfo.InvariantCulture); } else return (Value / 1000.0f / 1000.0f).ToString("#,0.0M", CultureInfo.InvariantCulture); } else return (Value / 1000.0f / 1000.0f).ToString("#,0M", CultureInfo.InvariantCulture); } else return (Value / 1000.0f / 1000.0f / 1000.0f).ToString("#,0.0bn", CultureInfo.InvariantCulture); } else return (Value / 1000.0f / 1000.0f / 1000.0f).ToString("#,0bn", CultureInfo.InvariantCulture); } else return (Value / 1000.0f / 1000.0f / 1000.0f / 1000.0f).ToString("#,0.0tr", CultureInfo.InvariantCulture); } else return (Value / 1000.0f / 1000.0f / 1000.0f / 1000.0f).ToString("#,0tr", CultureInfo.InvariantCulture);My aim here is to perhaps provide code that is more readable? Also doing divides like that actually causes the execution to force an individual divide each time.Code:if (Value == 0) return "0"; //0 var v = (int)Math.Log10(Value); switch (v) { case 0: case 1: return Value.ToString("0.0", CultureInfo.InvariantCulture); // 1 - 99 case 2: return Value.ToString("0", CultureInfo.InvariantCulture); // 100 - 999 case 3: return Value.ToString("#,0", CultureInfo.InvariantCulture); // 1,000 - 9,999 case 4: case 5: return (Value / 1000F).ToString("#,0k", CultureInfo.InvariantCulture); // 10,000 - 999,999 case 6: case 7: return (Value / 1000000F).ToString("#,0.0M", CultureInfo.InvariantCulture); // 1,000,000 - 99,999,999 case 8: return (Value / 1000000F).ToString("#,0M", CultureInfo.InvariantCulture); // 100,000,000 - 999,999,999 case 9: case 10: return (Value / 1000000000F).ToString("#,0.0bn", CultureInfo.InvariantCulture); // 1,000,000,000 - 99,999,999,999 case 11: return (Value / 1000000000F).ToString("#,0bn", CultureInfo.InvariantCulture); // 100,000,000,000 - 999,999,999,999 case 12: case 13: return (Value / 1000000000000F).ToString("#,0.0tr", CultureInfo.InvariantCulture); // 1,000,000,000,000 - 99,999,999,999,999 default: return (Value / 1000000000000F).ToString("#,0tr", CultureInfo.InvariantCulture); // 100,000,000,000,000+ }