2013-10-30 76 views
1

即時通訊我正在開發的程序的結果有問題。除去2位小數點而捨去結果

像例如,如果即時通訊數量8672.59,我想分成2,結果應該是4336.295。問題是我如何將它轉換爲2位小數點他們兩個四捨五入的結果,以便我仍然可以得到正確的金額,當我添加2個數字。

例如。

8672.59/2 = 4336.295

如果四捨五入到2位digimal點的結果爲4336.30

如何可以將其轉換爲2位小數點與出四捨五入,從而如果它是由兩個結果相乘是一樣8672.59沒有8672.60

謝謝!

+2

這實際上是不可能的。 – Ryan

+1

對不起 - 我不認爲我理解你的問題。我以爲你只是想找一種方法來繞一個奇數(到2個地方),而不會失去或取得任何舍入。經過重新閱讀,我同意@minitech – IniTech

回答

1

從整體上減去舍入的結果。

Dim Total as Double = 8672.59 
Dim OneHalf = Math.Round(Total/2, 2) 
Dim SecondHalf = Total - OneHalf 

在你的榜樣,總= 8672.59,二分之一那麼= 4336.30(四捨五入)

SecondHalf = 8672.59 - 4336.30 = 4336.29

+0

感謝您的這一個傢伙! –

2

如果您希望該操作是可逆的,則需要存儲足夠的信息以退出計算。因此,如果您只將8672.59/2存儲到小數點後兩位,則不能通過乘以2得到8672.59。您將得到8672.58或8672.60,這取決於您存儲的是4336.29還是4336.30。

現在,您可以將數字存儲到小數點後三位(或您需要的任何精度),並只顯示其中兩個小數位。只需將存儲的數字乘以2,就可以回到原來的數字。