Можно ли в генераторе отчета преобразовать из цыфрового выражения числа в текстовое (пример - 23 = двадцать три)
NumToStr(23) = двадцять три
NumToStr(23,‘Russian’) = двадцать три
P.S. Если Вам такая функция нужна для отображения денег, то может пригодиться еще и функция Money
Пример:
Money(X,‘рубль;рубля;рублей’)
X Результат
1 рубль
3 рубля
40 рублей
Money(X,‘гривня;гривні;гривень’)
X Результат
1 гривня
3 гривні
40 гривень
NumToStr(23) = двадцять три
А если нужно сумма с десятыми пример 23,92 пропись десятых отбрасует
P.S. У меня получалось так [Get(3,[P20110])] грн. ([NumToStr([Get(3,[P20110])])]) грн. но проблема возникла с десятыми (копейками)
Посмотрите пример
Как сделать чтобы округление было к целым, тоисть копейки округлялись в большую или меньшую сторону.
Round(X) - округление
Trunc(X) - отбрасывание дробной части
Замечу также что Round(X)=Trunc(X+0.5)
Виявляється, що Round(X) не завжди дорівнює Trunc(X+0.5)
На скільки я зрозумів, функцію Trunc не можна застосовувати для цифр, більших за 5000000. Але чому так?
Наприклад, скрипт:
$X=5406651.1612
$X=@Calc trunc(1000*$X+0.5)/1000
@Dialog.Message $X
видає результатом 1111683.866
Звідки береться таке значення?
В той же час функція Round дасть 5406651.161:
$X=5406651.1612
$X=@RoundTo $X 3
@Dialog.Message $X
Виявляється, що Round(X) не завжди дорівнює Trunc(X+0.5)
На скільки я зрозумів, функцію Trunc не можна застосовувати для цифр, більших за 5000000. Але чому так?
Наприклад, скрипт:
$X=5406651.1612
$X=@Calc trunc(1000*$X+0.5)/1000
@Dialog.Message $X
видає результатом 1111683.866
Звідки береться таке значення?
Функція Trunc повертає цілочисленну частину числа з плаваючою комою (float). А даний тип пiдтримує дiапазон чисел вiд -2 147 483 648.0 до 2 147 483 647.0.
Ваше число 1000*$X=5 406 651 000.0 випадає з даного дiапазону, тому i результат такий.