Аналитика http://www.geosystema.net/forum/ |
|
Преобразование http://www.geosystema.net/forum/viewtopic.php?f=1&t=2214 |
Страница 1 из 1 |
Автор: | chigirin-geo [ 13 окт 2011 14:30 ] |
Заголовок сообщения: | Преобразование |
Можно ли в генераторе отчета преобразовать из цыфрового выражения числа в текстовое (пример - 23 = двадцать три) |
Автор: | Dmitry_Zolotar [ 13 окт 2011 17:22 ] |
Заголовок сообщения: | Re: Преобразование |
chigirin-geo писал(а): Можно ли в генераторе отчета преобразовать из цыфрового выражения числа в текстовое (пример - 23 = двадцать три) NumToStr(23) = двадцять три NumToStr(23,'Russian') = двадцать три P.S. Если Вам такая функция нужна для отображения денег, то может пригодиться еще и функция Money Пример: Money(X,'рубль;рубля;рублей') X Результат 1 рубль 3 рубля 40 рублей Money(X,'гривня;гривні;гривень') X Результат 1 гривня 3 гривні 40 гривень |
Автор: | chigirin-geo [ 28 окт 2011 11:05 ] |
Заголовок сообщения: | Re: Преобразование |
NumToStr(23) = двадцять три А если нужно сумма с десятыми пример 23,92 пропись десятых отбрасует P.S. У меня получалось так [Get(3,[P20110])] грн. ([NumToStr([Get(3,[P20110])])]) грн. но проблема возникла с десятыми (копейками) |
Автор: | Dmitry_Zolotar [ 29 окт 2011 14:42 ] |
Заголовок сообщения: | Re: Преобразование |
chigirin-geo писал(а): NumToStr(23) = двадцять три А если нужно сумма с десятыми пример 23,92 пропись десятых отбрасует P.S. У меня получалось так [Get(3,[P20110])] грн. ([NumToStr([Get(3,[P20110])])]) грн. но проблема возникла с десятыми (копейками) Посмотрите пример |
Автор: | chigirin-geo [ 31 окт 2011 09:06 ] |
Заголовок сообщения: | Re: Преобразование |
Как сделать чтобы округление было к целым, тоисть копейки округлялись в большую или меньшую сторону. |
Автор: | Dmitry_Zolotar [ 31 окт 2011 09:17 ] |
Заголовок сообщения: | Re: Преобразование |
chigirin-geo писал(а): Как сделать чтобы округление было к целым, тоисть копейки округлялись в большую или меньшую сторону. Round(X) - округление Trunc(X) - отбрасывание дробной части Замечу также что Round(X)=Trunc(X+0.5) |
Автор: | fendak [ 25 ноя 2017 13:10 ] |
Заголовок сообщения: | Re: Преобразование |
Dmitry_Zolotar писал(а): chigirin-geo писал(а): Как сделать чтобы округление было к целым, тоисть копейки округлялись в большую или меньшую сторону. 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 |
Автор: | Руслан Пархуць [ 26 ноя 2017 01:49 ] |
Заголовок сообщения: | Re: Преобразование |
fendak писал(а): Виявляється, що 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 результат такий. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |