C# 控制台应用程序 % 数学总是返回 0

标签 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% 这就是我的问题,我希望能快速找到问题 :)

最佳答案

您正在做一个整数除法,它将被四舍五入。

例子:

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

改为尝试

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

强制进行浮点除法。

关于C# 控制台应用程序 % 数学总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707331/

相关文章:

c# - 以类型泛型/不可知的方式实现泛型方法的最佳方法

c# - 自定义对象的枚举?

c# - 使用 AjaxToolKit 的 TabContainer

c# - .net core 3.1 Azure Devops Pipeline 在 nuget 恢复上失败

c# - 通过 BookSleeve 使用 Redis。未知参数

c# - NUnit Console Runner 可以即时报告失败的测试吗?

c# - 关于正则表达式的问题

c# - 使用 Linq 仅选择最低值

c# - 在窗体之间切换

c# - 在 C# 中动态组合类