在C++中对float变量执行算术时是否总是需要使用float文字?

Joa*_*nge 6 c++ floating-point performance floating-accuracy floating-point-precision

我看到很多C++代码都有如下行:

float a = 2;
float x = a + 1.0f;
float b = 3.0f * a;
float c = 2.0f * (1.0f - a);
Run Code Online (Sandbox Code Playgroud)

这些是.0f这些文字后,真的有必要吗?如果省略这些,你会失去数字准确性吗?

如果你有这样一条线,我认为你只需要它们:

float a = 10;
float x = 1 / a;
Run Code Online (Sandbox Code Playgroud)

你应该在哪里使用1.0f,对吗?

Bor*_*der 6

在以下情况下,您需要使用它:

float x = 1/3;
Run Code Online (Sandbox Code Playgroud)

1或3需要有一个.0否则x将始终为0.

  • @JoanVenge:不,在等式中的某处有浮点变量是不够的.例如,如果`y`是浮点数,那么`float x = y + 1/3;`仍然是错误的.首先评估`1/3`.两个操作数都是整数,因此使用整数运算.在获得结果之后,将其添加到y.那时,有一个转换为浮动,但为时已晚. (3认同)