Guest User

Untitled

a guest
May 24th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. public static int CurrencyToInt(decimal amount, string currencyCode)
  2. {
  3. var precision = 0;
  4.  
  5. currencyCode = currencyCode?.ToUpperInvariant();
  6.  
  7. if (new[] {
  8. "BHD", "IQD", "JOD", "KWD", "LYD", "OMR", "TND"
  9. }.Contains(currencyCode))
  10. {
  11. precision = 3;
  12. }
  13. else if (new[] {
  14. "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BMD",
  15. "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BZD", "CAD", "CDF", "CHF", "CNY", "COP", "CRC", "CUC", "CUP",
  16. "CZK", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GGP", "GHS", "GIP",
  17. "GMD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IRR", "JEP", "JMD",
  18. "KES", "KGS", "KHR", "KPW", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "MAD", "MDL",
  19. "MKD", "MMK", "MNT", "MOP", "MUR", "MVP", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK",
  20. "NPR", "NZD", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "QAR", "RON", "RSD", "RUB", "SAR", "SBD", "SCR",
  21. "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SPL", "SRD", "STD", "SVC", "SYP", "SZL", "THB", "TJS", "TMT",
  22. "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "USD", "UYU", "UZS", "VEF", "WST", "XCD", "XDR", "YER",
  23. "ZAR", "ZMW", "ZWD"
  24. }.Contains(currencyCode))
  25. {
  26. precision = 2;
  27. }
  28. else if (new[] {
  29. "MGA", "MRO"
  30. }.Contains(currencyCode))
  31. {
  32. precision = 1;
  33. }
  34. else if (new[]{
  35. "BIF", "BYR", "CLP", "CVE", "DJF", "GNF", "ISK", "JPY", "KMF", "KRW", "PYG", "RWF", "UGX", "VND", "VUV",
  36. "XAF", "XOF", "XPF"
  37. }.Contains(currencyCode))
  38. {
  39. precision = 0;
  40. }
  41. else
  42. {
  43. throw new ArgumentException("Unknown currency code " + currencyCode, nameof(currencyCode));
  44. }
  45.  
  46. while (precision > 0)
  47. {
  48. amount *= 10;
  49. precision--;
  50. }
  51.  
  52. return (int)Math.Floor(amount);
  53. }
Add Comment
Please, Sign In to add comment