C#控制台应用程序%math始终返回0

时间:2012-07-29 06:58:25

标签: c#

大家好我在我的控制台应用程序中遇到一个小问题 我有一个文本文件 19862行

String[] lines= File.ReadAllLines("C:\\Users\\ThElitEyeS\\Desktop\\PHP\\name\\names.txt");
int c = lines.Length;
int i = 1;
foreach (String line in lines) {
    long f = ((i++ / c) * 100);
    Console.WriteLine(f + "%");
}

该值始终返回0% 除了最后一个它返回100% 这是我的问题,我希望快速找到问题:)

2 个答案:

答案 0 :(得分:4)

你正在进行整数除法,它将被舍入。

示例:

i = 1 and c= 100
result is 0.01  -> rounded to 0
0 * 100 = 0

而是尝试

long f = ((i++ / (double) c) * 100);

强制浮点除法。

答案 1 :(得分:1)

你已经有了一个可行的答案,但我不会在这里使用double,当整数除法(不是舍入,但是截断)就足够了:

long f = i++ * 100 / c;