2015-06-18 210 views
0

我從第1行的A和B列(見下文)890和450開始,兩者除以1.2得到一個淨數字(第2行),其結果是分爲兩種類型(如salesA和salesB) 如何確保salesA + salesB的總和等於第2行顯示的值,而第2行的值又等於第1行乘以20%時的值。 正如你可以看到,列B是由出0.02四捨五入的值列

實施例上乘以20%線2

column A  column B 
    890.00 /1.2  450.00 /1.2 
    741.67   375.00 
    333.33 salesA 208.35 salesA 
    408.34 salesB 166.67 salesB 

    741.67   375.02 sum of salesA + sales B 

值應該等於在第1行 值如何實現這一目標?我知道Math.Round。 試過到處插入它,但它不工作 除法運算符是一個SELECT語句

+2

顯示您的代碼... – Icemanind

+0

問題是375.02 * 1.2 = 450.02不是450.00您是如何得到450.00的?你用什麼數據類型來存儲這些值? – Marko

+0

450是起始數字 – callasda

回答

0

你做這樣的事情裏面,當分裂:

total = 741.67 
a = round(f(total), 2) 
b = round(g(total), 2) 

其中f()和g()是用於分割的計算。相反,這樣做:

total = 741.67 
a = round(f(total), 2) 
b = total - a; 

現在a + b總是等於total

但是,由於四捨五入,與1.2相乘時,您將永遠無法再獲取起始值。

+0

這是關鍵,如何得到它,所以它始終等於起始數字 – callasda

+0

或者它可能根本不可能? – callasda

+0

四捨五入時,信息不可避免地丟失。除非你將舍入錯誤存儲在某個地方,否則你將無法再獲得起始數字! –