Ошибка в вычислениях с большими числами - pow(10,54)

330
25 июня 2017, 16:04

Почему при выполнении этого кода получается 0, а должно быть 123?

int b = pow(10,54)+123-pow(10,54);
qDebug() << b;
Answer 1

Точность представления числа с плавающей точкой имеет свои границы, увы, не доходящие до 54 знаков. Поэтому прибавление 123 к 1054 нисколько не меняет представление 1054 в переменной типа double.

Кстати, вы здесь проводите вычисления с типом double, который затем приводите к int - но, думаю, вы и сами это понимаете...

READ ALSO
Как перехватить сообщение WM_NCCREATE?

Как перехватить сообщение WM_NCCREATE?

Как перехватить сообщение WM_NCCREATE (о создании окна) ?

313
jQuery hover 2 элемента

jQuery hover 2 элемента

Помогите реализовать такоеЕсть 2 динамических блока добавленных на страницу через $()

249
Border-bottom и два цвета

Border-bottom и два цвета

Нужно сделать, чтобы в меню при наведении на элемент border-bottom был двух цветов, как на картинке:

286
Свойство column-count не работает в Google Chrome

Свойство column-count не работает в Google Chrome

В списке категорий в моём магазине мне нужно было отобразить список в несколько колонок,для этого я использовал:

413