2015-06-18 120 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

四舍五入时,信息不可避免地丢失。除非你将舍入错误存储在某个地方,否则你将无法再获得起始数字! –