Я разбираю записи состояния GPS в фиксированных предложениях NMEA, где часть географических минут поступает всегда после периода. Однако в системах, где локаль определяет запятую как десятичный разделитель, функция atof игнорирует часть периода и целую дробь.Местно-независимый «atof»?
Каков наилучший метод решения этой проблемы? Строка длинные/широты хранятся в массиве символов, если это имеет значение.
Пример кода:
m_longitude = atof((char *)pField);
Где
pField[] = "01000.3897";
Кросс-платформенный проект, составленный для Windows XP и CE.
Комментарий к решению:
Принимается ответ более элегантный, но this ответ (и комментарий) также стоит знать, как быстро исправить
Можете ли вы дать нам несколько примеров данных, с которыми вы должны работать? Это может помочь нам обеспечить лучшее решение. – suszterpatt
m_longitude = atof ((char *) pField); где pField [] = "01000.3897"; Кросс-платформенный проект, скомпилированный для Windows XP и CE. – tomash
Есть ли веская причина не использовать strtod (который имеет одинаковую характеристику в локали, но имеет лучшую обработку ошибок)? – AProgrammer