我想创建一个函数,它返回一个数字的百分比作为int(在这种情况下为10%,因此它将返回传入的int的10%),例如,如果你传递了76,它会返回8。 基本上它就像下面的功能,但我认为必须有一个更好的方法来做到这一点。
int percent(int y){
int x;
if(y >= 95)
return 10;
else if(y >= 85)
return 9;
else if(y >= 75)
return 8;
...
}
答案 0 :(得分:10)
int percent(int y){
return (y + 5) / 10;
}
你有整数除法,所以它可以用于舍入!
答案 1 :(得分:3)
您可以使用:
int percent(int y){
return (y + 5) / 10;
}
但是我会给函数一个不同的名称,因为我不认为这是百分比的正常含义。
答案 2 :(得分:1)
这适用于任何百分比,不仅仅是10。
int CountPercentage(int input, int percentage)
{
long long x = static_cast<long long>(input) * static_cast<long long>(percentage);
long long ret = x / 100;
if (x - ret * 100 >= 50)
++ret;
return static_cast<int>(ret);
}
此外,如果你可以使用WinAPI,你可以这样解决:
int CountPercentage(int input, int percentage)
{
return MulDiv(input, percentage, 100);
}
答案 3 :(得分:0)
如果输入始终不是负数,您可以使用:
int percent(int y){
return (y + 5) / 10;
}
否则你需要这个:
int percent(int y){
return (y >= 0 ? (y + 5) : (y - 5)) / 10;
}