Почему-то так получается, что в последнее время я всё больше и больше занимаюсь Oracle, нежели Delphi.
Сегодня публикую функцию, которая форматирует число в строку прописью (словами) на английском языке. Особо примечательно то, что для этого используется встроенная в Oracle функция to_char, а не массивы слов.
За основу примера взят этот топик.
function number_in_words_en(number_ in integer) return varchar2 is
result varchar2(1000);
begin
-- пример взят отсюда: http://www.sqlsnippets.com/en/topic-12355.html
if abs(number_) > 999999999 then
raise_application_error(-20100, 'Number must be between -999999999 and 999999999');
end if;
result := replace(lower(to_char(to_timestamp(lpad(abs(number_), 9, '0'), 'FF9'), 'FFSP')), ' ', ' ');
if sign(number_) < 0 then
result := 'negative '||result;
end if;
return result;
end;
А здесь я предлагаю другой вариант реализации подобной функции + форматирование на русском языке
0 коммент.:
Отправить комментарий