显示c#中两个变量的百分比数字

时间:2016-10-27 09:57:03

标签: c# html sharepoint

我有两个变量,我想以百分比显示,当我用运算符计算它们时结果为0为什么? 请帮我。谢谢 这是我的来源

  int count = (from a in dc.jawabans
                         where a.q14 == "5 : Sangat Baik/ Sangat Puas"
                         select a).Count();
            TextBox1.Text = count.ToString();

            int total = (from b in dc.jawabans
                         where b.q14 != ""
                         select b).Count();

            TextBox2.Text = total.ToString();

            int persen = (count / total) * 100;

            TextBox3.Text = persen.ToString();

This is the result

5 个答案:

答案 0 :(得分:2)

countinttotal也为int。在C {int除以int时,结果为int。解决方案是将一个变量强制转换为double

int persen = (int)((double)count / total * 100);

答案 1 :(得分:1)

像这样写:

decimal persen = (count / (decimal)total) * 100;

之后,如果您愿意,可以将其舍入:

TextBox3.Text = Math.Round(persen, 2).ToString();

2个整数的除法是一个整数,所以你应该指定其中一个是十进制的。

答案 2 :(得分:0)

因为你将两个整数分开,所以结果也是整数。您可以将count和total设置为double,然后您将得到正确的结果。

答案 3 :(得分:0)

这是因为您正在进行的总和是使用整数,因此该值四舍五入为最接近的整数 - 例如,如果count为20,total为100

int persen = (count / total) * 100;

与做

相同
int persen = (count / total); //this = 0 as it would evaluate to 0.2 => 0
persen = persen * 100; //still 0

尽管

int persen = ((double)count / (double)total) * 100;
//This would be 20, as count and total are both cast to a double - it also works if you only cast one of them

答案 4 :(得分:0)

decimal persen = (count / (decimal)total) * 100; //count 20, total 100, so person will be 0 if it is int in your code

如果你用int去掉int,它会给你int而不是double。 因此,根据您的要求,将计数或总计转换为十进制或双精度。