Jia*_*iao 3 c# windows sum shared-libraries
在C#我有以下代码:
public static float sum(List<float> array)
{
float result = 0.0f;
for (int i = 0; i < array.Length; i++)
result += array[i];
float lSum = array.Sum();
return result;
}
Run Code Online (Sandbox Code Playgroud)
为什么这两种"不同"方法的结果有所不同?
对于长度的数组911380元件导致 = 620246和lSum = 620235.8
什么是List.Sum的内部实现,哪个答案是正确的?它是C#语言/库的问题还是取决于Windows 中+的实现?
我们研究人类大脑和心脏活动,我们需要正确的结果,所以我感谢任何帮助!非常感谢提前.
该Sum扩展方法使用一个double积累的结果,唯一的强制转换成float返回它,所以它比使用更精确float:
public static float Sum(this IEnumerable<float> source)
{
if (source == null) throw Error.ArgumentNull("source");
double sum = 0;
foreach (float v in source) sum += v;
return (float)sum;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
781 次 |
| 最近记录: |