如何在C#中计算百分比

4

我正在尝试计算给定长整型值的百分比。 以下代码返回零。 如何在C#中计算百分比。

long value = (fsize / tsize) * (long)100;

这里的fsize和tsize是一些长整型值。


5
fsize和tsize的值是多少?它们的类型是什么?当您设置断点并进行调试时,会发生什么? - user1666620
1
我相信你的所有操作数都是 int/long 类型,并且你正在进行整数运算。 - Habib
如果 fsizetsize 是整数,那么这是一个整数除法,其结果也是一个整型值。 - Tim Schmelter
2
不是一个很好的重复目标。问题更多地涉及数据类型,而不是如何计算百分比。 - ryanyuyu
3个回答

7

试试这个

var value = ((double)fsize / tsize) * 100;
var percentage = Convert.ToInt32(Math.Round(value, 0));

3
你可以尝试这样做:
double value = ((double)fsize / (double)tsize) * 100.0;

如果 fsizeint 类型,且 tsize 也是 int 类型,则除法结果也是 int 类型,并且结果为 0 是正确的答案。你需要将其转换为 double 类型才能得到正确的值。

2
最好的方法是这样做。
int percentage = (int)Math.Round(((double)current / (double)total) * 100);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接