什么是Java中的浮点数?

时间:2011-02-22 10:05:57

标签: java floating-point

我写了这段代码:

float b = 3.6;

我得到了这个:

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

为什么呢?什么是float

的定义

4 个答案:

答案 0 :(得分:164)

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

如果你想创建一个浮动,你应该用f结束你的号码(即:3.6f)。

有关详细说明,请参阅primitive data types definition of the Java tutorial

答案 1 :(得分:37)

成功

float b= 3.6f;
  

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

为后缀

答案 2 :(得分:13)

事实是十进制数字默认为加倍。而且由于double不适合浮动,你必须明确告诉你有意定义一个浮点数。所以请跟:

float b = 3.6f;

答案 3 :(得分:6)

在JAVA中,值如:

  1. 8.5
  2. 3.9
  3. (等等......)
  4. 假设为 double 而不是 float

    您还可以执行演员表来解决问题:

    float b = (float) 3.5;

    另一种解决方案:

    float b = 3.5f;