在C中如何将小数点四舍五入到最接近的八分之一 P> >我想知道如何在C++中用一个加倍到最近的第八(不是C++,C,java)。我在这里发布之前已经尝试过答案,这是我找到的一个教程的唯一语言。< /强>有人知道怎么做吗?
示例输出如下:如果输入的数字为0.126,则将其四舍五入到0.250。如果是0.124,则四舍五入为0.125 下面是一个处理舍入的函数:在C中如何将小数点四舍五入到最接近的八分之一 P> >我想知道如何在C++中用一个加倍到最近的第八(不是C++,C,java)。我在这里发布之前已经尝试过答案,这是我找到的一个教程的唯一语言。< /强>有人知道怎么做吗?,c,C,示例输出如下:如果输入的数字为0.126,则将其四舍五入到0.250。如果是0.124,则四舍五入为0.125 下面是一个处理舍入的函数: double roundToNearestEighths(double value) { if (value >= 0) return floor(value * 8.0 + 0.5) / 8.0; else return -floor(-value * 8.0 + 0.5) / 8.0; } 下面是一个处
double roundToNearestEighths(double value) {
if (value >= 0)
return floor(value * 8.0 + 0.5) / 8.0;
else
return -floor(-value * 8.0 + 0.5) / 8.0;
}
下面是一个处理舍入的函数:
double roundToNearestEighths(double value) {
if (value >= 0)
return floor(value * 8.0 + 0.5) / 8.0;
else
return -floor(-value * 8.0 + 0.5) / 8.0;
}
如您所述,您希望将您的数字四舍五入到最接近的1/8
#include <math.h>
#include <stdio.h>
double roundToEight(double value)
{
return ceil(value*8)/8;
}
int main()
{
printf("%f\n",roundEight(12.42)); //12.500
printf("%f\n",roundEight(12.51)); //12.625
printf("%f\n",roundEight(12.50)); //12.500
printf("%f\n",roundEight(-0.24)); //-0.125
printf("%f\n",roundEight(0.3668)); //0.375
return 0;
}
#包括
#包括
双圆灯(双值)
{
返回ceil(值*8)/8;
}
int main()
{
printf(“%f\n”,第八轮(12.42));//12.500
printf(“%f\n”,第八轮(12.51));//12.625
printf(“%f\n”,第八轮(12.50));//12.500
printf(“%f\n”,四舍五入(-0.24));//-0.125
printf(“%f\n”,第八轮(0.3668));//0.375
返回0;
}
如果你想让负数向下舍入,你可以在那里放一个
If
语句,并在负数分支上使用floor()而不是ceil()。正如你所说,你想让你的数字向上舍入到最接近的1/8
#include <math.h>
#include <stdio.h>
double roundToEight(double value)
{
return ceil(value*8)/8;
}
int main()
{
printf("%f\n",roundEight(12.42)); //12.500
printf("%f\n",roundEight(12.51)); //12.625
printf("%f\n",roundEight(12.50)); //12.500
printf("%f\n",roundEight(-0.24)); //-0.125
printf("%f\n",roundEight(0.3668)); //0.375
return 0;
}
#包括
#包括
双圆灯(双值)
{
返回ceil(值*8)/8;
}
int main()
{
printf(“%f\n”,第八轮(12.42));//12.500
printf(“%f\n”,第八轮(12.51));//12.625
printf(“%f\n”,第八轮(12.50));//12.500
printf(“%f\n”,四舍五入(-0.24));//-0.125
printf(“%f\n”,第八轮(0.3668));//0.375
返回0;
}
如果您希望将负数向下舍入,可以在那里放置一个
If
语句,并在负数分支上使用floor()而不是ceil()。什么是示例输入和输出?(int)(x*8.0+0.5)/8.0
?要四舍五入到最接近的八位还是小数点后八位?最接近的奇数还是最接近的偶数?噢,对不起。示例输出如下:如果输入的数字为0.126,则将其四舍五入到0.250。如果是0.124,则取整到0.125。什么是示例输入和输出?(int)(x*8.0+0.5)/8.0
?您想取整到最接近的八位还是小数点后八位?最接近的奇数还是最接近的偶数?哦,对不起。示例输出如下:如果输入的数字为0.126,则将其四舍五入到0.250。如果为0.124,则取整为0.125。注意:roundToEight()
在value>DBL\u MAX/8时可能溢出注意:roundToEight()
在value>DBL\u MAX/8时可能溢出