gpt4 book ai didi

C# 后台 worker 划分

转载 作者:行者123 更新时间:2023-11-30 17:01:53 29 4
gpt4 key购买 nike

我正在尝试使用一个后台 worker ,它为字典中的每个键将内容保存到文件中。 ACon 是一个个人类,它在其中调用字典内容的保存函数。

   private void bwSaver_DoWork(object sender, DoWorkEventArgs e)
{
string[] Keys = ACon.GetKeys();
int num = 0;

foreach (string s in Keys)
{
ACon.Save(s);
int Len = Keys.Length;
double pctg = (num / Len);

//Below was by first attempt at getting the percentage. Above are my debugging attempts.
bwSaver.ReportProgress(num/Keys.Length*100);
num++;
}
}

我希望它通过提供它所在的 key /总 key * 100 百分比来报告进度,但这没有用。

不管我用什么类型的pctg; short、int、float、double、num/Len 始终 = 0,但如果我将其调换,Len/num 会给出正确的值。添加或删除括号不会改变任何内容。我是不是太傻了,漏掉了什么,还是我写错了什么?

这是一些来自 VS2010(专业版)的截图

pctg 为双: pctg as double

pctg 为 float : pctg as float

pctg 为 double,没有括号: pctg as double, without brackets

交换了 Len 和 num 的 pctg: pctg with Len and num swapped

最佳答案

不是你在改变pctg的类型,它是基于num和Len的类型

尝试:

float pctg = ((float)num / (float)Len);

如果 numLen 都是整数,那么您的代码将执行整数除法,然后将该整数转换为 float 。

正如下面@CDspace 所提到的,整数除法将舍入到最接近的整数,在您的情况下为零。然后将零转换为任何其他类型仍然是零。

关于C# 后台 worker 划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20554935/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com