Название: Вопрос по QString::toDouble() Отправлено: gimnazist от Сентябрь 26, 2011, 19:15 Столкнулся с такой ситуацией:
Код
Т.е. при получении дабла из строки методом toDouble() получается такое вот. Как получить число 1.5 используя toDouble()? Может локаль какую высставить? Название: Re: Вопрос по QString::toDouble() Отправлено: Vass от Сентябрь 26, 2011, 20:18 округлять, с помощью qRound
числа с плавающей точкой, это числа с плавающей точкой по идее в a оказывается не 1.5, а скажем 1.499999(9) в результате получается число 4.999999(9) вместо пяти, но прямое приведение к int просто отбрасывает дробную часть и ты получаешь 4. qRound это аналог stl'евской round из math.h Название: Re: Вопрос по QString::toDouble() Отправлено: LisandreL от Сентябрь 26, 2011, 20:29 В отладочной версии:
d1 = 4 d1 x100 = 499 d2 = 4 d2 x100 = 499 Проблема в c = 0.1 - она не представима в виде конечной двоичной дроби. Для сравнения: Код: double a = 1.5; Почему в релизной версии в первом случае получается 5 и 500? Это резултат оптимизации кода компилятором. |