舍入双数组中的所有元素

时间:2015-02-24 03:53:25

标签: c# arrays

我需要帮助试图弄清楚如何将双数组中的所有元素四舍五入到4位小数。我想我需要使用Array.ForEach语句或foreach语句,但我似乎无法使语法正确。

数组有数字(x / y坐标),如下所示:

"0;24;5.99753782108473;21.770136316906;8.32805512530786;19.3909999184418"

这些来自Autocad,最长可达15位小数。我只需要1/16“精度就可以做到这一点,所以我可以把它四舍五入到小数点而不会伤害任何东西。

目前我正在使用Math.Round(d1,4)对我需要的值进行四舍五入 - d1是数组名称。但是我认为立刻将整个阵列四舍五入是“更清洁”

2 个答案:

答案 0 :(得分:2)

如果您需要1/16的准确度,请将您的数字乘以16,舍入,然后除以16.由于16是2的幂,double将提供它的精确表示。

要一次转换整个数组,请使用LINQ:首先,为每个项选择新值,然后将结果转换回数组,如下所示:

d1 = d1.Select(d => Math.Round(d*16) / 16).ToArray();

您需要使用System.Linq才能进行编译。

答案 1 :(得分:0)

 i think you can use foreach like this :
 double array_value
 foreach(Double arry in yourArray){
   array_value = Math.Round(arry,4);
 }