Member 12677926 Ответов: 2

Точность в двойном значении mfc


как исправить мое двойное значение до 14 цифр после десятичной точки. для того чтобы сравнить с VB, я хочу зафиксировать свое двойное значение до 14 цифр ..iam doing in mfc.. how To do in mfc.

в VB точность двойного значения всегда равна 14. но в нашем mfc ее 16.поэтому я хочу зафиксировать значение на 14.

Что я уже пробовал:

двойной D = 2.483650149760682

я хочу, чтобы это значение было равно 2.483650149760

2 Ответов

Рейтинг:
2

Jochen Arndt

Просто распечатайте их с необходимым количеством цифр после десятичной точки:

double d = 2.483650149760682;
// Prints as 2.483650149760 (12 digits after decimal point)
printf("%.12f\n", d);

Видеть ссылка на printf - C++ [^] для параметров формата. Для печати в буфер (подготовьте строку) используйте sprintf-ссылка на C++ [^] или метод форматирования используемого класса string (если он доступен, например CStringT:: Формат[^] ).

При использовании потоков C++ используйте setprecision-ссылка на C++ [^] метод.


Richard MacCutchan

Проблема в том, что ОП действительно не понимает чисел с плавающей запятой.

Рейтинг:
2

Richard MacCutchan

Вы уже разместили этот вопрос по адресу Строку VB для двойной против MFC CString в двойной[^]; пожалуйста, не делайте репост. Я также объяснил, в чем проблема, и дал вам ссылку на статью, в которой объясняются числа с плавающей запятой. Как я уже сказал тогда, если вы действительно не понимаете плавающую точку, вам следует избегать их использования.