假設我有三個雙打,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