如何在舍入到4个小数位后使用Linq比较两个多维双数组? [英] How Can I Compare Two Multi Dimensional Double Arrays Using Linq After Rounding To 4 Decimal Places?

查看:66
本文介绍了如何在舍入到4个小数位后使用Linq比较两个多维双数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我有两个2-D双数组。我需要在舍入到4个小数位后比较这两个数组中的每个值。(两者都有相同的行和列).I有代码

  var  equal = data1.Rank == data2.Rank&& 
Enumerable.Range( 0 ,data1.Rank).All(dimension = > data1 .GetLength(维度)==¬
data2.GetLength(维度))&&
data1.Cast< double>()。SequenceEqual(data2.Cast< double>());







这显示错误的结果。因为它没有舍入值。

我需要将舍入后的值与4位小数进行比较。请帮助

解决方案

 var equal = data1.Rank == data2.Rank&& 
Enumerable.Range(0,data1.Rank).All(dimension => data1.GetLength(dimension)== data2.GetLength(dimension))&& data1.Cast < double > ()。选择(v => Math.Round(v,4))。SequenceEqual(data2.Cast < double > ()。选择(v => Math.Round(v,4)));


Hi,
I have two 2-D double arrays.I need to compare each value from these two arrays after rounding to 4 decimal places.(both are having same rows and columns).I have the code

var equal = data1.Rank == data2.Rank &&
Enumerable.Range(0, data1.Rank).All(dimension => data1.GetLength(dimension) == ¬
data2.GetLength(dimension)) &&
data1.Cast<double>().SequenceEqual(data2.Cast<double>());




This shows wrong result..because it is not rounding the values.
I need to compare values after rounding to 4 decimals.Pls help

解决方案

var equal = data1.Rank == data2.Rank &&
            Enumerable.Range(0, data1.Rank).All(dimension => data1.GetLength(dimension) == data2.GetLength(dimension)) && data1.Cast<double>().Select(v => Math.Round(v, 4)).SequenceEqual(data2.Cast<double>().Select(v => Math.Round(v, 4)));


这篇关于如何在舍入到4个小数位后使用Linq比较两个多维双数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆