![]() |
#17 |
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. |
|
Теги |
разделитель тысячных, axapta |
|
![]() |
||||
Тема | Ответов | |||
Разделитель страницы в MS WORD | 3 | |||
Разделитель десятичных знаков в отчетах | 0 |
|