假设我有三个双打,a,b和c。四舍五入操作
double a = 1.234560123;
double b = 7.890120123;
double c = a * b;
c = 9.740827669535655129
我想使用只有5位小数的数字。所以,如果我圆a和b使用Math.Round(一,5)和Math.Round(B,5)我得到:
double a_r = Math.Round(a, 5);
double b_r = Math.Round(b, 5);
a_r = 1.23456
b_r = 7.89012
double c_r = a_r * b_r;
c_r = 9.7408265472
但是当我计算C,我还是得到了一些有超过5小数位(这将发生在每次乘法,除法,增强和类似操作中)。我可以将所有结果放在我的代码中,但这是我想避免的难题。
由于我在其他操作中使用c和其他操作的结果,所以我不希望每次都舍入所有中间结果,以免传播由不需要的小数位引起的错误。
有没有办法用固定的小数位数来定义双精度,与运算无关?
里德给下面你的答案通过谷歌搜索:) – Brian 2013-02-15 16:58:46
你为什么要限制你的准确度一样,很容易被发现的?只想显示一定数量的小数位是很常见的,但我想不出有什么理由来人为限制计算中使用的小数位数。 – anaximander 2013-02-15 17:02:31
@anaximander这是特别真实的,因为他使用的精度比那个更高... – 2013-02-15 17:04:04