Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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++ 四舍五入到100个单位_C++_Visual Studio 2010 - Fatal编程技术网

C++ 四舍五入到100个单位

C++ 四舍五入到100个单位,c++,visual-studio-2010,C++,Visual Studio 2010,我不知道下面的想法是否可行,但我想将每个计算值四舍五入到100个单位 例如: double x; int x_final; ... if (x<400) x_final=400; else if (x<500) x_final=500; else if (x<600) x_final=600; ... doublex; int x_决赛; ... 如果(x要进行取整,可以使用以下方法: x_final = ((int)x / 100 + 1) * 100; 要汇总,您可以使

我不知道下面的想法是否可行,但我想将每个计算值四舍五入到100个单位

例如:

double x;
int x_final;
...
if (x<400) x_final=400;
else if (x<500) x_final=500;
else if (x<600) x_final=600;
...
doublex;
int x_决赛;
...

如果(x要进行取整,可以使用以下方法:

x_final = ((int)x / 100 + 1) * 100;

要汇总,您可以使用以下方法:

x_final = ((int)x / 100 + 1) * 100;

要汇总,您可以使用以下方法:

x_final = ((int)x / 100 + 1) * 100;

要汇总,您可以使用以下方法:

x_final = ((int)x / 100 + 1) * 100;
请注意:

#include <math.h>
...

x_final = ceil(x/100)*100;
#包括
...
x_final=ceil(x/100)*100;
请执行以下操作:

#include <math.h>
...

x_final = ceil(x/100)*100;
#包括
...
x_final=ceil(x/100)*100;
请执行以下操作:

#include <math.h>
...

x_final = ceil(x/100)*100;
#包括
...
x_final=ceil(x/100)*100;
请执行以下操作:

#include <math.h>
...

x_final = ceil(x/100)*100;
#包括
...
x_final=ceil(x/100)*100;

显而易见的解决方案是使用
remquo

int
roundTo100( double x )
{
    int results;
    remquo( x, 100.0, &results );
    return 100 * results;
}
不过,您可能需要一个相当新的编译器: 该函数被添加到C99,C++与C++ 11相依。 在平台上,您可能根本没有它,或者您可能只有 将它放在
中(但不要放在
中)。如果编译器 声明支持C++11,您应该在
中拥有它 在你看到它之前不要相信它;实际上没有编译器 支持C++11到任何实际的程度 是对C99的支持(几乎包括所有Unix 平台和Windows下的CygWin),它应该出现在
,不管怎样。(但它不存在于Visual Studio中。) 工作室。)

在没有此功能的情况下,类似于:

int
roundTo100( double x )
{
    int results = round( x / 100 );
    return 100 * results;
}
可能会有效果。注意这两个函数是循环的 稍有不同。第一个是四舍五入,如果剩余的 正好是50,第二个是圆到平。第二个是5月 由于划分可能导致不准确(或 不是——我没有充分分析它,以确定一种方法 或其他)

根据
x
的来源,舍入差异 或者,潜在的不准确可能不是问题 例如,
x
是从一些物理测量中得出的 精度只有3位小数,事实上它可以四舍五入 当
x
距离50约1E14或
like可能不相关。)

显而易见的解决方案是使用
remquo

int
roundTo100( double x )
{
    int results;
    remquo( x, 100.0, &results );
    return 100 * results;
}
不过,您可能需要一个相当新的编译器: 该函数被添加到C99,C++与C++ 11相依。 在平台上,您可能根本没有它,或者您可能只有 将它放在
中(但不要放在
中)。如果编译器 声明支持C++11,您应该在
中拥有它 在你看到它之前不要相信它;实际上没有编译器 支持C++11到任何实际的程度 是对C99的支持(几乎包括所有Unix 平台和Windows下的CygWin),它应该出现在
,不管怎样。(但它不存在于Visual Studio中。) 工作室。)

在没有此功能的情况下,类似于:

int
roundTo100( double x )
{
    int results = round( x / 100 );
    return 100 * results;
}
可能会有效果。注意这两个函数是循环的 稍有不同。第一个是四舍五入,如果剩余的 正好是50,第二个是圆到平。第二个是5月 由于划分可能导致不准确(或 不是——我没有充分分析它,以确定一种方法 或其他)

根据
x
的来源,舍入差异 或者,潜在的不准确可能不是问题 例如,
x
是从一些物理测量中得出的 精度只有3位小数,事实上它可以四舍五入 当
x
距离50约1E14或
like可能不相关。)

显而易见的解决方案是使用
remquo

int
roundTo100( double x )
{
    int results;
    remquo( x, 100.0, &results );
    return 100 * results;
}
不过,您可能需要一个相当新的编译器: 该函数被添加到C99,C++与C++ 11相依。 在平台上,您可能根本没有它,或者您可能只有 将它放在
中(但不要放在
中)。如果编译器 声明支持C++11,您应该在
中拥有它 在你看到它之前不要相信它;实际上没有编译器 支持C++11到任何实际的程度 是对C99的支持(几乎包括所有Unix 平台和Windows下的CygWin),它应该出现在
,不管怎样。(但它不存在于Visual Studio中。) 工作室。)

在没有此功能的情况下,类似于:

int
roundTo100( double x )
{
    int results = round( x / 100 );
    return 100 * results;
}
可能会有效果。注意这两个函数是循环的 稍有不同。第一个是四舍五入,如果剩余的 正好是50,第二个是圆到平。第二个是5月 由于划分可能导致不准确(或 不是——我没有充分分析它,以确定一种方法 或其他)

根据
x
的来源,舍入差异 或者,潜在的不准确可能不是问题 例如,
x
是从一些物理测量中得出的 精度只有3位小数,事实上它可以四舍五入 当
x
距离50约1E14或
like可能不相关。)

显而易见的解决方案是使用
remquo

int
roundTo100( double x )
{
    int results;
    remquo( x, 100.0, &results );
    return 100 * results;
}
不过,您可能需要一个相当新的编译器: 该函数被添加到C99,C++与C++ 11相依。 在平台上,您可能根本没有它,或者您可能只有 将它放在
中(但不要放在
中)。如果编译器 声明支持C++11,您应该在
中拥有它 在你看到它之前不要相信它;实际上没有编译器 支持C++11到任何实际的程度 是对C99的支持(几乎包括所有Unix 平台和Windows下的CygWin),它应该出现在
,不管怎样。(但它不存在于Visual Studio中。) 工作室。)

在没有此功能的情况下,类似于:

int
roundTo100( double x )
{
    int results = round( x / 100 );
    return 100 * results;
}
可能会有效果。注意这两个函数是循环的 稍有不同。第一个是四舍五入,如果剩余的 正好是第50位