有些程序员使用这样的浮点数
CGFloat itemsHeight = [m_subscriptions count] * 97.f;有些人用像这样的浮子
CGFloat itemsHeight = [m_subscriptions count] * 97.0f;掉零有什么副作用吗?
发布于 2014-11-20 19:19:55
不,尾随零没有什么区别:浮点常量的值将保持不变。您确实需要一个点,因为否则编译器会报告语法错误。换句话说,[m_subscriptions count] * 97f不会编译。
发布于 2014-11-20 19:19:40
没有副作用。它们都是同一个数字的字面符号。
发布于 2014-11-21 09:39:58
无论您是否使用0.0、.0或0.0f甚至0f,都不会有太大的区别。(关于双倍和浮点数有一些)
如果您正在初始化一个变量,那么它就没有任何意义。编译器为您完成所有的强制转换。
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告诉编译器,您希望将文字作为一个单精度浮点数来处理。
https://stackoverflow.com/questions/27047694
复制相似问题