|
|
|
|
#1 |
|
Участник
|
Ой да, отвлекся от первоначальной задачи.
|
|
|
|
|
#2 |
|
Moderator
|
Функция strFmt возвращает в виде строки: int-число - без десятичных знаков, real-число - с двумя десятичными знаками (и без всяких научных e-форматов). Если быть уверенным, что речь идет именно о real (а наверняка речь идёт о деньгах, а они всегда real), то можно оставить в строке только 10 цифровых символов и знак "минус". Далее полученную строку конвертнуть обратно в число и разделить на 100, "обманув" таким образом и разделитель тысяч, и десятичную точку (запятую):
X++: static void Job173(Args _args) { AmountMst a = -10.000012345678987e+12; str s = strKeep(strFmt('%1', a), '-0123456789'); real b = str2num(s) / 100; // ну или * 0.01 ; box::info(strFmt('%1', b)); } Если исходное число целое, то его можно по ходу без напряжения превратить в real, сложив с 0. или умножив на 1. (точки важны!) или разделить на 1 (можно без точки): X++: int a = 1000000; strFmt('%1', a + 0.) // или strFmt('%1', a * 1.) // или strFmt('%1', a / 1 ) // хоть по теории это и самый долгий вариант, // зато без точки :) Последний раз редактировалось Gustav; 30.04.2009 в 12:53. |
|
|
|
|
#3 |
|
Участник
|
Спасибо Hyper, in.dc, lev.
Вариант решения с strKeep() вполне приемлемый, с учетом замечания по десятичной точке от lev. |
|
|
|
|
#4 |
|
Moderator
|
|
|
|
|
|
#5 |
|
Ищущий знания...
|
Этот пост к чему? я же написал что разделитель может быть НЕ только точка
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
|
|
#6 |
|
Moderator
|
этот пост был к следующему:1. Говоря о копейках и разделителе, Вы, наверное, имели в виду DecimalSeparator - что он может быть не только точкой, но и ЗАПЯТОЙ. 2. Я же говорил о ThousandsSeparator, что он тоже может быть ЗАПЯТОЙ (например, это стандартный разделитель у американцев). 3. Мой пост больше адресовался valentino, который учёл Ваши рекомендации, lev. 4. Мне стало любопытно, какой же вариант алгоритма он избрал окончательным. 5. Так как мне показалось, что символ "запятая" претендует на место в списке strKeep, я решил подлить масла в огонь. |
|
|
|
|
#7 |
|
Ищущий знания...
|
Цитата:
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
|
| За это сообщение автора поблагодарили: Gustav (1). | |
| Теги |
| разделитель тысячных, axapta |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Разделитель страницы в MS WORD | 3 | |||
| Разделитель десятичных знаков в отчетах | 0 | |||
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|