C++ 四舍五入到100个单位
我不知道下面的想法是否可行,但我想将每个计算值四舍五入到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; 要汇总,您可以使
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位