как компьютер рассчитывает число с плавающей запятой 0,1?

У меня есть интересное любопытство, как компьютер вычисляет число с плавающей запятой 0,1?
В альфа-версии wolfram запрос «0.1 to binary» получает двоичное число с плавающей запятой бесконечно.
Но компилятор c ++ (xcode) вычисляет 0,1 точно.
Как это возможно?

-4

Решение

Из-за округления вы можете получить от конечного двоичного представления до исходного десятичного числа. Если вы попытаетесь напечатать число с более высокой точностью, оно не будет точно равно 0,1. Рабочий пример:

#include <iostream>
#include <iomanip>
using namespace std;

int main() {
float f = 0.1f;
cout << f << endl;
cout << setprecision(10) << f << endl;
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector