Как написать плавающий литерал C ++? - PullRequest
0 голосов
/ 05 июля 2018

result - это float, и я мог бы написать это тремя способами:

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

Насколько я понимаю,

  • 0 неявно int,
  • 0. неявно double
  • и 0.f - это float.

Я бы предпочел использовать первый метод, поскольку он понятен и прост, но форсирую ли я преобразование типов, используя его?

1 Ответ

0 голосов
/ 05 июля 2018

Концептуально да, преобразования сделаны.

Но вы должны отложить такие микро-соображения до компилятора и написать, что самое ясное, для меня это

if (result < 0)

Если у вас есть какие-либо сомнения, проверьте сгенерированную сборку (очень просто с https://gcc.godbolt.org/).

Наконец, когда решите использовать float вместо double, рассмотрите double или float, что быстрее?

...