Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么括号会把objective-c中的数学搞砸?_Ios_Objective C_Math - Fatal编程技术网

Ios 为什么括号会把objective-c中的数学搞砸?

Ios 为什么括号会把objective-c中的数学搞砸?,ios,objective-c,math,Ios,Objective C,Math,为什么这两种计算结果不同?这是xcode 6.1 (lldb) print newBounds.size.height (CGFloat) $0 = 446.5 (lldb) print newBounds.size.height * 6/4 (double) $1 = 669.75 (lldb) print newBounds.size.height * (6/4) (double) $2 = 446.5 这只是整数数学和提升类型的常用规则 height * 6/4 == (height *

为什么这两种计算结果不同?这是xcode 6.1

(lldb) print newBounds.size.height
(CGFloat) $0 = 446.5
(lldb) print newBounds.size.height * 6/4
(double) $1 = 669.75
(lldb) print newBounds.size.height * (6/4)
(double) $2 = 446.5

这只是整数数学和提升类型的常用规则

height * 6/4 == (height * (double)6) / (double)4 == (height * 6.0) / 4.0
鉴于:

height * (6/4) == height * (double)(1) == height * 1.0
因为
6/4==1
和括号强制在将其升级为
double
之前首先对其求值


这是与C、C++、Objul-C等相同的行为,所以在调试器中也不应该太惊讶。

< P>这只是整数数学和常用类型的推广规则。

height * 6/4 == (height * (double)6) / (double)4 == (height * 6.0) / 4.0
鉴于:

height * (6/4) == height * (double)(1) == height * 1.0
因为
6/4==1
和括号强制在将其升级为
double
之前首先对其求值


<>这是和C、C++、Objul-C等相同的行为,所以在调试器中也不应该太惊讶。

以前我没有遇到过类型的推广。我以前没有遇到过类型的升级。