什么是Java中的浮点数?

t0m*_*aka 95 java floating-point

我写了这段代码:

float b = 3.6;
Run Code Online (Sandbox Code Playgroud)

我明白了

Error:Unresolved compilation problem: 
    Type mismatch: cannot convert from double to float

为什么?是什么定义float

Nic*_*las 170

在Java中,当您键入十进制数时3.6,其解释为double.double是一个64位精度IEEE 754浮点,float而是一个32位精度IEEE 754浮点.由于a float不如a精确double,因此无法隐式执行转换.

如果你想创建一个浮点数,你应该用f(即:) 结束你的数字3.6f.

有关更多说明,请参阅Java教程原始数据类型定义.


Jig*_*shi 38

做了

float b= 3.6f;
Run Code Online (Sandbox Code Playgroud)

如果浮点文字后缀为ASCII字母F或f,则浮点文字的类型为float; 否则其类型为double,并且可以选择以ASCII字母D或d为后缀


Jan*_*yka 13

问题是十进制数字默认为加倍.因为double不适合浮动,你必须明确告诉你有意定义一个浮点数.所以请跟:

float b = 3.6f;
Run Code Online (Sandbox Code Playgroud)


Car*_* Sá 7

在JAVA中,值如下:

  1. 8.5
  2. 3.9
  3. (等等..)

假设是双重而不是浮动.

您还可以执行强制转换以解决问题:

float b = (float) 3.5;

另一种方案:

float b = 3.5f;