gpt4 book ai didi

c++ - 输入 double 无明显原因变小

转载 作者:行者123 更新时间:2023-11-30 04:45:16 27 4
gpt4 key购买 nike

<分区>

因此,当我输入像 12.45 这样的十进制数时,它会减少 0.00001 或其他导致我的函数无法正常工作的东西。

例如:如果x是12.45,div是0.1,看x可以看到变成12.449999999

但是如果 x 是 12.455 并且 div 是 0.01 它不会减少 x

double round(double x, double div){
if (div != 0){
double temp2 = 0;
int temp = x;
double dec = x - temp;
dec = dec/div;
temp = dec;
temp2 = dec-temp;
temp2 = temp2 * div;
cout << x << endl << endl;
if (temp2 >= div/2){
x+=(div-temp2);
}else{
x-=temp2;
}
cout << temp << " " << dec << " " << x << " " << temp2 << " " << div/2;
return x;
}else{
cout << "div cant be equal to zero" << endl;
}
}

我试图制作一个将十进制数字四舍五入的函数。我知道这可能不是最好的做法,但它可以解决我之前描述的问题。

为了解决这个问题,我尝试限制输入的小数位,但没有用。还尝试使用其他方法而不是使用 double /整数组合,但没有任何结果。

当 x 为 12.45 且 div 为 0.1 时,我预计输出为 12.5,但它不起作用,因为输入的 0.000001 丢失了。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com