【发布时间】:2019-10-15 04:48:07
【问题描述】:
我通过将整数除以 10 的幂来将 int 转换为 double。对于具有 7 位或更大数字的整数,当我将 int 转换为 double 时,似乎执行了舍入.为什么会发生这种情况?如何避免这种舍入?
#include <iostream>
using namespace std;
double add_decimals(int x, int decimal_places)
{
double ret = 1.0 * x;
cout << "x= " << x << endl;
cout << "ret before changes= " << ret << endl;
for (int i = 0; i < decimal_places; ++i)
{
ret /= 10;
}
return ret;
}
int main()
{
double d = add_decimals(1234566, 2);
cout << "d= " << d << endl;
}
【问题讨论】: