Преобразовать числа с десятичными дробями (в валюте) в словаC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Преобразовать числа с десятичными дробями (в валюте) в слова

Сообщение Anonymous »

Я хочу преобразовать десятичные числа (в валюте) в слова

например: 12345,60
--> двенадцать тысяч триста сорок пять долларов и шестьдесят центов

Я получил этот код от
http://www.csharp-tutorials.info/2016/0 ... -in-c.html

Код: Выделить всё

 public static string NumberToWords(int number)
{
if (number == 0)
return "zero";

if (number < 0)
return "minus " + NumberToWords(Math.Abs(number));

string words = "";

if ((number / 1000000000) > 0)
{
words += NumberToWords(number / 1000000000) + " billion ";
number %= 1000000000;
}

if ((number / 1000000) > 0)
{
words += NumberToWords(number / 1000000) + " million ";
number %= 1000000;
}

if ((number / 1000) > 0)
{
words += NumberToWords(number / 1000) + " thousand ";
number %= 1000;
}

if ((number / 100) > 0)
{
words += NumberToWords(number / 100) + " hundred ";
number %= 100;
}

if (number > 0)
{
if (words != "")
words += " ";

var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };

if (number < 20)
words += unitsMap[number];
else
{
words += tensMap[number / 10];
if ((number % 10) > 0)
words += "-" + unitsMap[number % 10];
}
}

return words;
}
он ​​прекрасно работает с целыми числами, но если ввести двойное значение.
появляется ошибка

потому что он принимает только int.

Я стараюсь изо всех сил, используя свои знания, но не могу изменить код, чтобы получить то, что хочу..

Подробнее здесь: https://stackoverflow.com/questions/433 ... y-to-words
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Нам очень жаль. Этот продавец не принимает платежи в вашей валюте
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • WooCommerce & WPML: не может получить цены в выбранной валюте в пользовательском Ajax Call
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • WooCommerce возвращает цену get_total() с двумя десятичными знаками
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Используйте PHP для генерации случайной десятичной дроби между двумя десятичными знаками
    Anonymous » » в форуме Php
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Необходимость сделать определенные столбцы десятичными, не затрагивая весь CSV в Python.
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»