Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中如何将小数点四舍五入到最接近的八分之一 P> >我想知道如何在C++中用一个加倍到最近的第八(不是C++,C,java)。我在这里发布之前已经尝试过答案,这是我找到的一个教程的唯一语言。< /强>有人知道怎么做吗?_C - Fatal编程技术网

在C中如何将小数点四舍五入到最接近的八分之一 P> >我想知道如何在C++中用一个加倍到最近的第八(不是C++,C,java)。我在这里发布之前已经尝试过答案,这是我找到的一个教程的唯一语言。< /强>有人知道怎么做吗?

在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; } 下面是一个处

示例输出如下:如果输入的数字为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;
}

如您所述,您希望将您的数字四舍五入到最接近的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时可能溢出