我正在写这个函数.
const int ProgressBarLength = 230;
foreach (TransactionDetail item in list)
{
var itemProgress =
((ProgressBarLength/item.PurchasesRequired) *
Convert.ToInt32(item.TransactionAmount));
item.ProgressBar = itemProgress > ProgressBarLength ? ProgressBarLength : itemProgress;
}
Run Code Online (Sandbox Code Playgroud)
现在TransactionDetail我的循环中有2 秒.
如果item.PurchasesRequired = 500和TransactionAmount = 199.0结果值为0.但是,如果item.PurchasesRequired = 5和TransactionAmount = 94.0它返回有效结果.
我究竟做错了什么?
是item.PurchasesRequired一个int?
如果是这样,你的问题是整数除法.
ProgressBarLength是一个int,所以230/500 = 0.
使用float,, double或decimal(在演员表或ProgressBarLength中)保持所需的精确度.