Я хочу преобразовать std::string
, который я прочитал из файла CSV, в float
. Есть несколько представлений с плавающей точкой, таких как:
0,0728239
6.543.584.399
2,67E-02
Эти строки должны быть плавающими. Сначала я использовал atof()
, но преобразование было неверным:
2,67E-02 -> 2
6.543.584.399 -> 6.543
Затем я использовал boost::lexical_cast<float>()
, но когда дело доходит до числа с плавающей запятой, он выдает следующее исключение
`terminate` called after throwing an instance of
`'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast> >'`
`what()`: bad lexical cast: source type value could not be interpreted as target
Aborted
Как лучше всего преобразовать все три типа строк в число с плавающей точкой?