首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用CGFloat

正确使用CGFloat
EN

Stack Overflow用户
提问于 2014-11-20 19:16:27
回答 3查看 730关注 0票数 2

有些程序员使用这样的浮点数

代码语言:javascript
复制
CGFloat itemsHeight = [m_subscriptions count] * 97.f;

有些人用像这样的浮子

代码语言:javascript
复制
CGFloat itemsHeight = [m_subscriptions count] * 97.0f;

掉零有什么副作用吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-20 19:19:55

不,尾随零没有什么区别:浮点常量的值将保持不变。您确实需要一个点,因为否则编译器会报告语法错误。换句话说,[m_subscriptions count] * 97f不会编译。

票数 1
EN

Stack Overflow用户

发布于 2014-11-20 19:19:40

没有副作用。它们都是同一个数字的字面符号。

票数 0
EN

Stack Overflow用户

发布于 2014-11-21 09:39:58

无论您是否使用0.0、.0或0.0f甚至0f,都不会有太大的区别。(关于双倍和浮点数有一些)

如果您正在初始化一个变量,那么它就没有任何意义。编译器为您完成所有的强制转换。

代码语言:javascript
复制
float a = 0; //Cast int 0 to float 0.0
float b = 0.0; //Cast 0.0 double to float 0.0 as by default floating point constants are double
float c = 0.0f // Assigning float to float. .0f is same as 0.0f

但是如果你在一个表达式中使用这些,那就很有意义了。

6/5变为1.6/5.0变为1.2 (双值) 6/5.0f变为1.2 (浮点值)

因此,基本的区别是:

1.0或1是双常数,1.0f是浮动常数

如果没有后缀,包含小数点(199.0)的文字将被视为双精度浮点数。如果将其赋值或传递给单精度变量或参数,编译器将(应该)发出警告。附加f告诉编译器,您希望将文字作为一个单精度浮点数来处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27047694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档