大家好我在我的控制台应用程序中遇到一个小问题 我有一个文本文件 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% 这是我的问题,我希望快速找到问题:)
答案 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;