Почему не работает преобразование double в int?

Я тщательно искал правильное объяснение того, почему это происходит, но до сих пор не очень понимаю, поэтому прошу прощения, если это репост.

#include <iostream>
int main()
{
    double x = 4.10;
    double j = x * 100;

    int k = (int) j;

    std::cout << k;
 }

 Output: 409

Я не могу повторить это поведение с любым другим номером. То есть замените 4.10 любым другим числом в этой форме, и результат будет правильным.

Должен быть какой-то тип низкоуровневого преобразования, которого я не понимаю.

Спасибо!

9
задан Koma 2 May 2011 в 01:42
поделиться