You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组值无法生成double值:C#中double类型平均值为整数的问题排查

问题原因与修复

平均值显示为整数的核心原因

这是C#整数除法规则导致的:当两个整数类型的操作数做除法时,结果会自动丢掉小数部分,只保留整数。

看你代码里的关键行:

double average = temp.Sum()/5;
  • temp是int[]数组,temp.Sum()返回的是整数类型的总和(比如你输入的五个数总和是428)
  • 5也是整数
  • 所以428/5执行的是整数除法,结果直接取整为85,之后这个整数被转成double类型的85.0赋值给average,最终输出自然是85,而非预期的85.6。

"Array values can't produce a double value"提示的由来

这个提示本质和上面的问题是一回事:你的计算全程都是整数运算,最后只是把整数结果转成double,编译器会提示你——整个运算过程没有产生double类型的值,只是做了类型转换,所以出现这个提示。

快速修复方案

只要把除法里的任意一个操作数改成double类型,就能触发浮点数除法,保留小数部分:

// 方案1:把总和转成double
double average = (double)temp.Sum() / 5;
// 方案2:用小数形式的除数
double average = temp.Sum() / 5.0;
// 方案3:先把数组元素转成double再求和
double average = temp.Select(x => (double)x).Sum() / 5;

内容的提问来源于stack exchange,提问作者Javanese Python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:09:31