SpellNumber

From SunFlurry wiki
Revision as of 12:49, 20 April 2019 by Admin (talk | contribs) (Created page with "{{infobox function |name=SpellNumber |caption=Функции работы со строками |type=1 |status=2 |db=0 |exception=Невозможно превратить в...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  SpellNumber (Функции работы со строками)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, число, переполнение
Визуальность:Нет

Функция превращает число в его прописное представление, используя указанный язык и грамматический род результата. Величина числа, которое можно прописать таким образом ограничено словарем профайла прописи (см. описание второго аргумента), если число выходит за пределы словаря, будет вызвано исключение. Функция принимает отрицательные числа. В случае отрицательного числа, результат будет начинаться со слова минус (для русского языка). При форматировании числа дробная часть будет отброшена (не округлена). Результат всегда представляется в нижнем регистре.

Синтаксис

SpellNumber(<Число>,<Язык кодирования (STRING)>,<Род результата (STRING)>="М"):<Результат (STRING)>

Аргументы

  • <Число> - Аргумент, числовое представление которого необходимо превратить в пропись.
  • <Язык кодирования (STRING)> - (необязательный аргумент) Две буквы языка форматирования в латинской нотации. По умолчанию используется язык умолчания сборки или язык, заданный функцией SelectLanguage. Словарь перевода задан в файлах профайла, находящихся в подпапке Profiles папки клиента. Файлы имеют формат UTF-16 с BOM. Файлы должны иметь наименование Common.<язык>.sfs. Т.е., для словая русского языка используется файл Common.ru.sfs, английского Common.en.sfs. Файл словаря содержит кроме слов, связанных с созданием прописи чисел, также слова для превращения в текстовый формат даты и времени, прописи наименований валют и пр.
  • <Род результата (STRING)> - (необязательный аргумент) Задает род прописного представления числа. M для задания мужского рода (используется по умолчанию), F для задания женского рода. Применимо только в определенных языках представления (в английском, к примеру, будет игнорироваться)

Возвращаемое значение

Функция всегда возвращает строку UTF-16.

Примеры

Message(SpellNumber(1234567.89,"ru"));
//Будет выведено "один миллион двести тридцать четыре тысячи пятьсот шестьдесят семь"

Message(SpellNumber(1234567,"en"));
//Будет выведено "one million one hundred and thirty-four thousand five hundred and sixty-seven"

Message(SpellNumber(-555552,"ru","F"));
//Будет выведено "минус пятьсот пятьдесят пять тысяч пятьсот пятьдесят две"

Message(SpellNumber(123E16,"ru"));
//Будет выведено "один квинтиллион двести тридцать квадриллионов"

Message(SpellNumber(0,"ru"));
//Будет выведено "ноль"