result
是float
,我可以用以下三种方式进行编码:
if (result < 0)
if (result < 0.)
if (result < 0.f)
据我了解,
0
隐式为int
,0.
隐式为double
0.f
是float
。我更喜欢使用第一种方法,因为它很清楚而且很简单,但是我是否通过使用它来强制进行类型转换?
答案 0 :(得分:6)
从概念上讲,是可以进行转换的。
但是您应该将这样的微观考虑交给编译器,并写出最清晰的对我来说是
if (result < 0)
如果有任何疑问,请检查生成的程序集(使用https://gcc.godbolt.org/非常容易)。
最后,当决定在float
上使用double
时,请考虑double or float, which is faster?