我需要帮助试图弄清楚如何将双数组中的所有元素四舍五入到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是数组名称。但是我认为立刻将整个阵列四舍五入是“更清洁”
答案 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);
}