1

在Objective-C(或C)中,如果我这样做

CGFloat distance = 215;
CGFloat velocity = 20;
NSTimeInterval time = distance / velocity;

那是对的吗?或者,我应该投要么投要么distance投?velocityNSTimeInterval

请注意,在 iOS 7.0 中:

#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
#else
# define CGFLOAT_TYPE float
#endif

typedef CGFLOAT_TYPE CGFloat;

typedef double NSTimeInterval;
4

1 回答 1

3

此代码将两个值相除并生成四舍五入为 a 的数学商CGFloat。然后它会将其转换CGFloatNSTimeInterval(不会更改值)并将其存储在time.

如果CGFloat结果对您的需要足够准确(即使它是float),那么代码就可以了。如果不是,那么您应该将其中一个操作数转换为NSTimeInterval,这将导致商被舍入为 aNSTimeInterval而不是 a CGFloat

如果NSTimeInterval结果不够准确,那么您需要替代代码。

于 2013-10-30T16:34:02.310 回答