http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/ В последнее время я обсуждал С++.
В общем классе профессора, как правило, не покрывают эти мелочи, хотя мы знали, что означают ошибки округления.
Может кто-нибудь, пожалуйста, помогите мне в том, как избежать ошибки округления?
В учебнике показан пример кода
#include <iomanip>
int main()
{
using namespace std;
cout << setprecision(17);
double dValue = 0.1;
cout << dValue << endl;
}
Выводит
+0,10000000000000001
По умолчанию float содержит 6 цифр префиксов. Поэтому, когда мы переопределяем значение по умолчанию и запрашиваем больше (в этом случае 17!), Мы можем столкнуться с усечением (как объясняется в этом учебнике). Для double максимальное значение - 16.
В целом, как хорошие программисты на C++ избегают ошибки округления? Вы, ребята, всегда смотрите на двоичное представление числа?
Спасибо.