| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Double to CString |
| Автор: kkojot 3.4.2005, 22:44 |
| При преобразовании double в CString появляются некоторые странности имеется следующий код: ... CString m_strNumber; double d; d=3.0000000025; m_strNumber.Format("%.20f",d); ... в результате имеем: m_strNumber: 3.00000000250000020000 ///////////////////////////////// при d=3.000000000000065; в результате имеем: m_strNumber: 3.00000000000006480000 ///////////////////////////////// и так далее. Откуда берутся такие результаты? Если есть решения борьбы с этим, помогите пожалуйста. |
| Автор: Tneiro 4.4.2005, 12:26 |
| причина в том что double хранится как 1/на что-то потом складывается как боротся или округлять или умножать на 10 ,чтобы перевести его в целое если тебе надо использовать после запятой 20 символов != 8 бит CString str,str2; double d,g; d=7.2658362865823933332222; g=7.2658362865823933332222; str.Format("%.20f %.20f",d,g); AfxMessageBox(str); |