如何编写C++ float文字?

Ala*_*ord 6 c++ literals

result是的float,我可以用这三种方式编码:

  • if (result < 0)
  • if (result < 0.)
  • if (result < 0.f)

据我了解,

  • 0隐含地int,
  • 0. 是隐含的 double
  • 并且0.ffloat.

我更喜欢使用第一种方法,因为它清晰简单,但我是否通过使用它来强制进行类型转换?

Bat*_*eba 7

从概念上讲,是转换.

但是你应该把这些微观考虑因素推迟到编译器并写出最清楚的东西,对我而言

if (result < 0)
Run Code Online (Sandbox Code Playgroud)

如果您有任何疑问,请检查生成的程序集(使用https://gcc.godbolt.org/非常简单).

最后,当决定使用floatover a double,考虑double或float,哪个更快?

  • 顺便说一句,最清楚的是一点意见.`result <0.f`对我来说很清楚,`result <0.`是'result`的误导类型.`result <0`是"中立". (2认同)