我需要帮助尝试弄清楚如何将 double 组中的所有元素四舍五入到小数点后 4 位。我想我需要使用 Array.ForEach
语句或 foreach
语句,但我似乎无法获得正确的语法。
数组有如下数字(x/y 坐标):
"0;24;5.99753782108473;21.770136316906;8.32805512530786;19.3909999184418"
这些来自 Autocad,长度最多可达 15 位小数。对于我想要做的事情,我只需要 1/16"的精度,这样我就可以将其四舍五入到小数点后 4 位,而不会造成任何影响。
目前,我在需要时使用 Math.Round(d1,4) 对值进行四舍五入 - d1 是数组名称。不过我认为立即舍入整个数组会“更干净”
最佳答案
如果您需要 1/16 的精度,请将您的数字乘以 16,四舍五入,然后除以 16。由于 16 是 2 的幂,因此 double
将提供精确的表示其中。
要一次性转换整个数组,请使用 LINQ:首先,为每个项目选择新值,然后将结果转换回数组,如下所示:
d1 = d1.Select(d => Math.Round(d*16) / 16).ToArray();
您需要使用System.Linq
才能编译。
关于c# - 对 double 组中的所有元素进行四舍五入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28687871/