|
![]() |
#1 |
Гость
|
если бы бездумно не выдернули из правильной темы мой вопрос, было бы все ясно. Весь контекст темы я продублить не смогу.
Суть вопроса: str2int отрабатывает некорректно. |
|
![]() |
#2 |
Участник
|
Для корректной работы функций str2num() достаточно чтобы у символьного представления числа не было разделителей тысяч и разделителем целой и дробной части выступала точка.
Другими словами необходимо: 1. Удалить символы-разделители тысяч 2. Установить в качестве разделителя целой и дробной части точку X++: static void JOB_test(Args _args) { str strSeparators; str strThousend; str strPoint; str strNumber = strFmt("%1",123456789.01); real realNumber; ; print "Исходная строка = ", strNumber; // Символы-разделители strSeparators = strRem(strFmt("%1",1111.11),"1"); // Разделитель целой и дробной части strPoint = subStr(strSeparators, strLen(strSeparators),1); // Разделитель тысяч strThousend = strRem(strSeparators, strPoint); // Удаляем разделитель тысяч strNumber = strRem(strNumber, strThousend); // Заменяем разделитель целой и дробной части на точку //strNumber = global::strReplace(strNumber, strPoint, "."); strNumber = strPoke(strNumber,".",strFind(strNumber, strPoint, 1, strLen(strNumber))); // Собственно преобразование realNumber = str2num(strNumber); print "После преобразования = ", strNumber; print "Первод в число = ", realNumber; pause; } |
|
Теги |
.net, как правильно, преобразование типов |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|