Цитата:
Сообщение от
valentino
X++:
s = strrem(s, thousandsSeparator); // ничего не происходит
Цитата:
Сообщение от
valentino
X++:
s = num2str(123456.78, 10, 2, -1, -1); // s ="123 456.78" (с пробелом, код которого = 32)
num = str2num(s); // num = 123, в то время как ожидалось 123456.78 !!!
а попытка удалить из текстового представления тысячный разделитель (это может быть не только пробел) ни к чему не приводит, т.к. в данный момент в региональных настройках символ тысячного разделителя - это пробел с кодом 160! (см. первый джоб в начале темы)
А если рассмотреть вопрос с удалением символа 'разделителя тысяч' с другой позиции:
т.е. не пытаться удалить (strrem) конкретный символ, а оставить в строке (содержащией числа) только допустимые с точки зрения Ax числовые символы (strkeep)?
X++:
static void jobRemoveThousandsSeparator(Args _args)
{
#define.Numerics( ',.+-0123456789e' )
str s = num2str( 123456.78, 10, 2, -1, -1 ) ;
real num = str2num( strkeep( s, #Numerics ) ) ;
;
info( strfmt( "%1", num ) ) ;
}
UPD: Oops, немного опоздал.