Один из распространенных вопросов, возможно, я ошибаюсь, но последние два часа на google не дают мне ответа, Вопрос в том, как преобразовать CString в float, не используя std: library в C++.Преобразование CString в Float
Я пробовал с wcstod() Функция, но, эта функция имеет совсем другое поведение. Вы можете найти следующий код,
CString Tempconvert = "32.001";
double TempConvertedValue = wcstod(Tempconvert,NULL);
Итак, наконец TempConvertedValue должен иметь значение 32.001. Но я получаю TempConvertedValue = 32.000999999999998 Прошу предоставить мне любую помощь, которая конвертирует String «32.001», чтобы плавать только 32.001. Без использования std: library.
Похоже, что где-то есть поплавок (вместо двойного). Поплавки не могут точно выражать 32.001, но могут удвоить. wcstod возвращает double tho, поэтому проблемы не должно быть. Как вы выводите значение? –
Что случилось с библиотекой 'std'? – herohuyongtao
@JoelKlinghed Это неверно, double не может выразить значение с плавающей запятой точно так же, как использует тот же вид кодировки, что и float, но с большим количеством бит, чтобы он мог сохранять большее значение и с большей точностью. –