Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.222.137.240] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Как преобразовать строку во флоат с учетом языка и сигнализации ошибки
|
Сообщ.
#2
,
|
|
|
atof ? :
|
Сообщ.
#3
,
|
|
|
У atof ни каких ошибок в случае типа "1ю66" получишь 1
|
Сообщ.
#4
,
|
|
|
перебирай каждый символ, преобразовый и проверяй результат
|
Сообщ.
#5
,
|
|
|
Напиши свой конечный автомат для разбора с возвратом ошибки ;)
|
Сообщ.
#6
,
|
|
|
#include <stdlib.h>
double strtod( const char *nptr, char **endptr ); |
Сообщ.
#7
,
|
|
|
Cамому писать лень, но ведать придется...
Но проблема в том как определить что является раздилителем |
Сообщ.
#8
,
|
|
|
Все пишут поразному, даже программы выдают то точку, то запятую как разделитель. Ты у себя для себя реши, что у тебя будет разделителем, а если встретится второй символ разделения, переведи его в свой.
|
Сообщ.
#9
,
|
|
|
в Windows разделитель задается пользователем и следовательно можно узнать что он выбрал
|
Сообщ.
#10
,
|
|
|
А чем тебя strtod не устраивает ???
|
Сообщ.
#11
,
|
|
|
а че делает эта функция?
|
Сообщ.
#12
,
|
|
|
Не пробовал искать в GetCurrencyFormat, GetNumberFormat, GetNumberFormatА и тд ?
отдельно получение разделителя ? может через Virtual-Key Codes ? VK_SEPARATOR - 6C - Separator key VK_DECIMAL - 6E - Period (.) key |
Сообщ.
#13
,
|
|
|
VK_SEPARATOR - VK_DECIMAL - это явно нето это клавиши
GetCurrencyFormat, GetNumberFormat, GetNumberFormatА как то вылетело из говолы |
Сообщ.
#14
,
|
|
|
GetCurrencyFormat, GetNumberFormat эти функци служат для перевода строки из одног числового формата в другой, следовательно опять встает вопрос о точке запятой
|
Сообщ.
#15
,
|
|
|
У atof ни каких ошибок в случае типа "1ю66" получишь 1
Если это пользователь так, то это надо не давать вводить некорректное значение или исправлять, а функция в любом случае должна получить корректное значение. |