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

Objective c 目标c是否遵循操作顺序(Bedmas)?,objective-c,excel,equation,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等于num1,R11等于num3,R10等于14.9) 我看不出方程式有什么不同,但如果有,请指出。我的问题是,这两个问题

我只是想知道,因为我构建的应用程序做了一个很长的等式,结果与在Excel电子表格上得到等式的结果不同。输入的数字越高,差值越大。这是我在xcode中输入的方程式:
360*num1*num3*(1-powf(14.9/num1,0.286))

(num1和num3是输入的数字)。
以下是Excel计算:
=360*R9*R11*(1-((R10/R9)^0.286))

R9
等于
num1
R11
等于
num3
R10
等于14.9)


我看不出方程式有什么不同,但如果有,请指出。我的问题是,这两个问题中的一个(可能是ob-c问题)正在做一些与我预期不同的事情。

是的。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的规则也是如此。然而,这看起来没什么大不了的,但是当涉及到截断和用十进制数取整时,会产生一个大问题

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

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

知道为什么答案会不同吗?如果num1是300,num3是1,xcode给我62239,xcel给我6223962205@user19309311.不是Xcode计算的,而是C库的数学函数。2.浮点数是不精确的,可能会出现微小的差异,特别是如果您使用的函数是
exp()
360*300*1*(1-(14.9/300)^0.286)
实际上是62238.70043,那么您的excel计算是错误的,C是正确的。好的,谢谢!我有点担心,因为计算必须非常精确。@H2CO3因为有人用Excel计划/平衡/测试这个公式?例如,一些游戏设计师这样做是为了平衡游戏中实体的统计数据。括号、求幂、除法、乘法、加法、减法。你应该检查单元格R9、R10和R11是否包含你认为它们包含的数字——如果你输入你认为单元格包含的数字,你就会得到“正确”的答案。