Пример #1
0
        /// <summary>
        /// Convert number to currency string.
        /// </summary>
        private static string _ConvertNumberToCurrencyString(ulong number, EUnitCurrency highestUnitCurrency, string decimalMark,
                                                             string keyThousand, string keyMillion, string keyBillion, string keyTrillion, string keyQuarallion)
        {
            if (highestUnitCurrency >= EUnitCurrency.Quadrillions && number >= 1000000000000000)
            {
                ulong v1 = number / 1000000000000000;
                ulong v2 = (number % 1000000000000000) / 1000000000000;
                if (v2 > 0)
                {
                    if (v2 < 10)
                    {
                        return(v1 + decimalMark + "00" + v2 + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                    }
                    else if (v2 < 100)
                    {
                        return(v1 + decimalMark + "0" + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                    }
                    else
                    {
                        return(v1 + decimalMark + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                    }
                }
                else
                {
                    return(v1 + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                }
            }

            if (highestUnitCurrency >= EUnitCurrency.Trillions && number >= 1000000000000)
            {
                ulong v1 = number / 1000000000000;
                ulong v2 = (number % 1000000000000) / 1000000000;
                if (v2 > 0)
                {
                    if (v2 < 10)
                    {
                        return(v1 + decimalMark + "00" + v2 + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                    }
                    else if (v2 < 100)
                    {
                        return(v1 + decimalMark + "0" + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                    }
                    else
                    {
                        return(v1 + decimalMark + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                    }
                }
                else
                {
                    return(v1 + MyLocalizationManager.Instance.LoadKey(keyTrillion));
                }
            }

            if (highestUnitCurrency >= EUnitCurrency.Billions && number >= 1000000000)
            {
                ulong v1 = number / 1000000000;
                ulong v2 = (number % 1000000000) / 1000000;
                if (v2 > 0)
                {
                    if (v2 < 10)
                    {
                        return(v1 + decimalMark + "00" + v2 + MyLocalizationManager.Instance.LoadKey(keyBillion));
                    }
                    else if (v2 < 100)
                    {
                        return(v1 + decimalMark + "0" + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyBillion));
                    }
                    else
                    {
                        return(v1 + decimalMark + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyBillion));
                    }
                }
                else
                {
                    return(v1 + MyLocalizationManager.Instance.LoadKey(keyBillion));
                }
            }

            if (highestUnitCurrency >= EUnitCurrency.Millions && number >= 1000000)
            {
                ulong v1 = number / 1000000;
                ulong v2 = (number % 1000000) / 1000;
                if (v2 > 0)
                {
                    if (v2 < 10)
                    {
                        return(v1 + decimalMark + "00" + v2 + MyLocalizationManager.Instance.LoadKey(keyMillion));
                    }
                    else if (v2 < 100)
                    {
                        return(v1 + decimalMark + "0" + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyMillion));
                    }
                    else
                    {
                        return(v1 + decimalMark + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyMillion));
                    }
                }
                else
                {
                    return(v1 + MyLocalizationManager.Instance.LoadKey(keyMillion));
                }
            }

            if (highestUnitCurrency >= EUnitCurrency.Thousands && number >= 1000)
            {
                ulong v1 = number / 1000;
                ulong v2 = number % 1000;
                if (v2 > 0)
                {
                    if (v2 < 10)
                    {
                        return(v1 + decimalMark + "00" + v2 + MyLocalizationManager.Instance.LoadKey(keyThousand));
                    }
                    else if (v2 < 100)
                    {
                        return(v1 + decimalMark + "0" + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyThousand));
                    }
                    else
                    {
                        return(v1 + decimalMark + v2.ToString().TrimEnd('0') + MyLocalizationManager.Instance.LoadKey(keyThousand));
                    }
                }
                else
                {
                    return(v1 + MyLocalizationManager.Instance.LoadKey(keyThousand));
                }
            }

            return(number.ToString());
        }
Пример #2
0
 /// <summary>
 /// Convert number to currency string.
 /// </summary>
 /// <param name="highestUnitCurrency">highest unit of currency can be shown</param>
 public static string ConvertNumberToShortCurrencyString(ulong number, EUnitCurrency highestUnitCurrency = EUnitCurrency.Billions, string decimalMark = ".",
                                                         string keyThousand = "_TEXT_SHORT_THOUSAND", string keyMillion    = "_TEXT_SHORT_MILLION", string keyBillion = "_TEXT_SHORT_BILLION",
                                                         string keyTrillion = "_TEXT_SHORT_TRILLION", string keyQuarallion = "_TEXT_SHORT_QUARALLION")
 {
     return(_ConvertNumberToCurrencyString(number, highestUnitCurrency, decimalMark, keyThousand, keyMillion, keyBillion, keyTrillion, keyQuarallion));
 }