变量a是float,变量b是double。写一个会发表的声明

时间:2015-08-28 11:13:18

标签: java

书中的答案对我没有任何意义,所以这就是问题所在:

变量a是一个浮点数,变量b是一个双精度数。编写一个语句,将b的值赋给a,而不会在编译程序时导致错误。

这是我在书中找到的答案:

fvar = (float)dvar;

Whaaaat!????

这是我认为可行的方法:

public class HelloWorld 
{
    public static void main(String[] args)
  {
    float a = 7.5;
    double b = 12.25;
    a = (double)b;
  }
}

Haven没有弄明白所以任何帮助都非常感激。

2 个答案:

答案 0 :(得分:6)

本书的作者所写的是正确的

fvar = (float)dvar;

如果我们查看您的代码行,

a = (double)b; 

你再投两次加倍。你需要做的是施放到浮动,这是书中写的。作者是对的。

答案 1 :(得分:0)

答案完全有意义,因为a是浮点值,它不像b那样精确,是双倍的。 look here

告诉编译器变量的类型,它只知道这些类型不匹配。由于它们都是浮点数,你可以将b(双精度)转换为(浮点数),这会导致精度损失,因为double可以保存比浮点数更精确的数字。

如果将b转换为浮点数,则告诉编译器将数字切换为浮点数。