Я тщательно искал правильное объяснение того, почему это происходит, но до сих пор не очень понимаю, поэтому прошу прощения, если это репост.
#include <iostream>
int main()
{
double x = 4.10;
double j = x * 100;
int k = (int) j;
std::cout << k;
}
Output: 409
Я не могу повторить это поведение с любым другим номером. То есть замените 4.10 любым другим числом в этой форме, и результат будет правильным.
Должен быть какой-то тип низкоуровневого преобразования, которого я не понимаю.
Спасибо!