我有计算百分比并返回 int 值的 c# 程序,但它总是返回 0。
我已经编写了 16 个基本小时的代码,所以如果您发现其中的错误,我将不胜感激。
我调试了我的代码,发现该值被正确传递。
private int returnFlag(int carCapacity, int subscribers)
{
int percentage = (subscribers / carCapacity)*100;
return percentage;
}
Run Code Online (Sandbox Code Playgroud)
您看到的是对两个整数进行运算并丢失小数部分的结果。
这段代码,当使用值 5 和 14 时,将截断为 0:
(subscribers / carCapacity)
Run Code Online (Sandbox Code Playgroud)
您需要将操作数之一转换为双精度或十进制:
private int returnFlag(int carCapacity, int subscribers)
{
decimal percentage = ((decimal)subscribers / carCapacity) * 100;
return (int)percentage;
}
Run Code Online (Sandbox Code Playgroud)