我试着让我的程序把一个数字分别向上和向下舍入。
例如,如果这个数字是3.6
,那么我的程序应该把最近的数字4集合起来,如果这个数字是3.4
,它将被四舍五入到3。
我尝试使用ceil
库来获得3项的平均值。
results = ceil((marks1 + marks2 + marks3)/3)
但是,ceil
只对数字进行舍入,而不对数字进行滚动。
我偶然发现了一个算法
var roundedVal = Math.round(origVal*20)/20;
但我还是想不出解决问题的公式。
发布于 2016-10-07 12:11:26
std::ceil
舍入到最近的整数。
std::floor
舍入到最近的整数。
std::round
执行您期望的行为
请给一个用例与数字,如果这不提供您所需的!
发布于 2016-10-07 14:04:43
您不需要一个函数来舍入C或C++。你可以用一个简单的技巧。添加0.5,然后强制转换为整数。不管怎么说,这大概都是一回事。
double d = 3.1415;
double d2 = 4.7;
int i1 = (int)(d + 0.5);
int i2 = (int)(d2 + 0.5);
i1是3,i2是5,你可以自己验证。
发布于 2016-10-07 12:10:06
你需要的函数叫做圆角,信不信由你。
ceil
转起来,顺便说一句。也就是最接近的大整数。floor
击倒。
https://stackoverflow.com/questions/39925020
复制相似问题