Member 12677926 Ответов: 1

Строку VB для двойной против MFC CString в двойной


Привет,

у меня была проблема с VB String to double conversion и C++ CString to double conversion.

у меня есть значение в VB :

Строка - > 2.48365014976068

в VB они используют функцию Val при преобразовании в double они получают то же значение и в double, то есть (2.48365014976068)


в C++:

Строка - > 2.48365014976068

в C++ при преобразовании из CString в double значение в double равно (т. е. 2.4836501497606802)

и vb, и c++ дают разные значения ..пожалуйста, помогите мне

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

ГЛ.:
двойной d = Val(2.48365014976068)

С++:
двойной D = _tsof(2.48365014976068)

1 Ответов

Рейтинг:
1

Richard MacCutchan

Нет, оба значения одинаковы. Отличается только строковое представление. Видеть Что Каждый Компьютерщик Должен Знать Об Арифметике С Плавающей Запятой[^].


Maciej Los

5ед!

Member 12677926

строковое представление прекрасно, я думаю ... не могли бы вы объяснить, как это неправильно .

Richard MacCutchan

Все в порядке. Числа с плавающей запятой могут отображаться с любой точностью в пределах диапазонов, описанных в разделе Диапазоны Типов Данных[^Если вы не понимаете, как числа с плавающей запятой работают в компьютерах, то вам следует избегать их использования и придерживаться целочисленных или десятичных типов.