10.5f和float10.5之间的差异

问题描述

我尝试执行以下操作:

float a = 10.5;
//compile error (required float,provided double)

表示认十进制的值始终为double,长度为 64位,而float的长度为 32位。因此,从技术上讲,我不能在较大的“杯子”中放一些东西。

然后,我进行了一些更正,两者均起作用。我很好奇这两种方法间的区别(如果有):

float a = 10.5f;
float a = (float)10.5;

解决方法

将double转换为float或仅声明float变量之间的区别。在这种情况下,最好将变量声明为浮点数,因为转换文字没有什么意义。此外,将双精度浮点数转换为浮点数会降低精度。