Почему преобразование C++ из double в float показывает цифры после 8-го знака после запятой?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему преобразование C++ из double в float показывает цифры после 8-го знака после запятой?

Сообщение Anonymous »

Когда мы приводим от double к float в C++, мы, очевидно, теряем точность примерно с 15-17 до примерно 8 десятичных цифр, верно? Но, судя по замечанию коллеги, похоже, я давно неправильно понял, как актерский состав на самом деле работает на практике. Видно отсутствие у меня инженерного образования низкого уровня.
Итак, я написал следующее простое приложение в Visual Studio 2026. Я не понимаю, почему актеры делают то, что делают. Может кто-нибудь объяснить мне это?

Код: Выделить всё

int main()
{
double d1 = 0.12341470192384701;      // Take a double of 17 decimal places...
float f1 = static_cast(d1);    // ...cast it to float...
double d2 = f1;                       // ...and back to double

// Dump them all out to 12 decimal places to see what lies beyond the
// float's significant digits after the cast.

std::cout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»