В целом работает хорошо, но для очень малых (по величине) значений оператор возвращает false в некоторых реализациях стандартной библиотеки, хотя синтаксический анализ кажется корректным. Под «очень маленькими» я подразумеваю значения ниже наименьшего положительного (суб)нормального значения float, которое составляет 1,17549e-38f (
Код: Выделить всё
1.4013e-45fРассмотрим программу:
Код: Выделить всё
#include
#include
void parse( const char * zstr ) {
std::istringstream s( zstr );
float f;
s >> f;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79805884/parsing-of-small-floats-with-stdistream[/url]
Мобильная версия