C ++ преобразует строку в двойной с точностью

Мне нужно преобразовать строку в двойную с точностью до 15 цифр

Я прочитал много статей и похожих вопросов, и они предложили использовать setprecision (15) при распечатке чисел на экране.

Например:

string line = "34.9438553";
double lon1 = strtod(line.c_str(),NULL);

если я напишу

cout << lon1;

он будет печатать только 34,9439 вместо 34,9438553

Я мог бы написать

cout << setprecision(15) << lon1;

и это будет работать, но мне нужно, чтобы сама переменная lon1 имела точность 15 цифр, потому что мне нужны целые числа внутри переменной, а не только при выводе ее на экран.

Кто нибудь знает как это сделать ?

0

Решение

setprecision устанавливает точность печати, а не точность двойной. strtod считывает в double до минимума точности, доступные в double или в строке (в данном случае ограниченные строкой).

Короче говоря, у вас уже есть полная точность вашей строки в lon1 используя strtod,

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector