Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算c中的百分比#_C# - Fatal编程技术网

C# 如何计算c中的百分比#

C# 如何计算c中的百分比#,c#,C#,我试图计算给定长值的百分比。 下面的代码返回零。 如何计算c中的百分比# 这里的fsize和tsize是一些长值。您可以尝试以下方法: double value = ((double)fsize / (double)tsize) * 100.0; 如果fsize为int且tsize为int,则除法也是int,0是正确答案。您需要将其转换为双精度,以获取正确的值。试试这个 var value = ((double)fsize / tsize) * 100; var percentage = Co

我试图计算给定长值的百分比。 下面的代码返回零。 如何计算c中的百分比#


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

您可以尝试以下方法:

double value = ((double)fsize / (double)tsize) * 100.0;
如果
fsize
int
tsize
int
,则除法也是
int
,0是正确答案。您需要将其转换为双精度,以获取正确的值。

试试这个

var value = ((double)fsize / tsize) * 100;
var percentage = Convert.ToInt32(Math.Round(value, 0));
这是最好的方法

int percentage = (int)Math.Round(((double)current / (double)total) * 100);

fsize和tsize的值是什么?它们是什么类型的?当你设置断点并调试时,会发生什么?我相信你所有的操作数都是int/long类型,你在做整数运算。如果是
fsize
tsize
整数,那么这是一个整数除法,也会产生一个int值。不是一个很好的重复目标。问题更多的是数据类型,而不是如何计算百分比。
int percentage = (int)Math.Round(((double)current / (double)total) * 100);