Objective-c是否遵循操作顺序(Bedmas)?

时间:2012-12-28 19:51:48

标签: objective-c excel equation

我只是想知道,因为我构建的应用程序做了一个非常长的等式,结果与在Excel电子表格上完成时的结果不同,在那里我得到了等式。输入数字越高,差异越大。这是我在xcode中输入的等式:
360 * num1 * num3 * (1 - powf(14.9 / num1, 0.286))
(num1和num3是输入数字) 这是Excel计算:
=360*R9*R11*(1-((R10/R9)^0.286))
R9等于num1R11等于num3R10等于14.9)

我没有看到方程式的差异,但如果你这样做,请指出。我的意思是两个中的一个(可能是ob-c)正在做一些与我预期不同的事情。

1 个答案:

答案 0 :(得分:2)

是。 Objective-C是C的超集。

所以C的所有功能,Objective-C也都有。

 360 * num1 * num3 * (1 - powf(14.9 / num1, 0.286)) (num1 and num3 are the input numbers)
          A * num3 * (1 - powf(14.9 / num1, 0.286)) 
                 B * (1 - powf(14.9 / num1, 0.286)) 
                 B * (1 - powf(C, 0.286)) 
                 B * (1 - D) 
                 B * (E) 
                      F 

仅仅是为了获取信息,BEDMAS没有得到充分的关注。如果D& M在同一级别,最左侧将首先评估,A& S的规则也是如此。 S.然而,这并不是什么大不了的事,但是当涉及截断和使用十进制数进行舍入时,它会产生一个大问题。

a * b / c is calculated  as "(a*b) / c" 

,而

a / b * c is calculated as "(a/b) * c"