Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int CurrencyToInt(decimal amount, string currencyCode)
- {
- var precision = 0;
- currencyCode = currencyCode?.ToUpperInvariant();
- if (new[] {
- "BHD", "IQD", "JOD", "KWD", "LYD", "OMR", "TND"
- }.Contains(currencyCode))
- {
- precision = 3;
- }
- else if (new[] {
- "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BMD",
- "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BZD", "CAD", "CDF", "CHF", "CNY", "COP", "CRC", "CUC", "CUP",
- "CZK", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GGP", "GHS", "GIP",
- "GMD", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IRR", "JEP", "JMD",
- "KES", "KGS", "KHR", "KPW", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "MAD", "MDL",
- "MKD", "MMK", "MNT", "MOP", "MUR", "MVP", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK",
- "NPR", "NZD", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "QAR", "RON", "RSD", "RUB", "SAR", "SBD", "SCR",
- "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SPL", "SRD", "STD", "SVC", "SYP", "SZL", "THB", "TJS", "TMT",
- "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "USD", "UYU", "UZS", "VEF", "WST", "XCD", "XDR", "YER",
- "ZAR", "ZMW", "ZWD"
- }.Contains(currencyCode))
- {
- precision = 2;
- }
- else if (new[] {
- "MGA", "MRO"
- }.Contains(currencyCode))
- {
- precision = 1;
- }
- else if (new[]{
- "BIF", "BYR", "CLP", "CVE", "DJF", "GNF", "ISK", "JPY", "KMF", "KRW", "PYG", "RWF", "UGX", "VND", "VUV",
- "XAF", "XOF", "XPF"
- }.Contains(currencyCode))
- {
- precision = 0;
- }
- else
- {
- throw new ArgumentException("Unknown currency code " + currencyCode, nameof(currencyCode));
- }
- while (precision > 0)
- {
- amount *= 10;
- precision--;
- }
- return (int)Math.Floor(amount);
- }
Add Comment
Please, Sign In to add comment