Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将double转换为int_Java - Fatal编程技术网

在Java中将double转换为int

在Java中将double转换为int,java,Java,我有以下变量,我试图将myInt转换为double,但是,我得到了一个不能从double转换为int的错误。我注意到我可以毫无意外地将double转换为int,但我不确定为什么会失败。请容忍我,因为我是编程新手 double myDouble = 4; int myInt; myInt = myDouble; System.out.println(myInt); 谢谢大家! 写下: myInt = (int) myDouble; Java在没有帮助的情况

我有以下变量,我试图将myInt转换为double,但是,我得到了一个不能从double转换为int的错误。我注意到我可以毫无意外地将double转换为int,但我不确定为什么会失败。请容忍我,因为我是编程新手

    double myDouble = 4;
    int myInt;


    myInt = myDouble;

    System.out.println(myInt);
谢谢大家!

写下:

myInt = (int) myDouble;

Java在没有帮助的情况下进行加宽转换,例如int到double,但是对于缩小转换,您需要显式转换。

赋值double myDouble=4包含一个基本的加宽转换,它接受int文本4并将其加宽到double,具体来说,是4.0。Java通常不允许隐式原语缩小转换,相反,这就是myInt=myDouble;正在尝试这样做

但是,可以通过强制转换为int使其显式:


谢谢,所以在这段代码下,myInt现在是一个双精度类型?正确吗?不,它是一个int。如果你想让它是一个double,那么就把它叫做double myInt,但考虑到变量的名称,这会变得非常混乱。我明白,我选择这些名称是为了让用户更好地理解。@user2917239你的代码是int myInt;,这就是变量现在的类型,永远。变量不能像在PHP或其他一些语言中那样在运行时更改类型。这里的答案都是正确的,但我认为您在概念上存在差距。一旦声明了变量,就不能更改其类型。如果为其指定不同的值,则变量的类型不会更改,但必须强制转换该值才能与指定给它的变量兼容。这种转换可能是自动的,如果将int转换为double,将int值存储在double变量中,或者如果将double转换为int,将double值存储在int变量中,则可能需要显式告诉Java执行此操作。谢谢,这个问题更多的是为了学术目的,而不是其他任何问题。然而,整个程序可能无法访问该变量。程序中可访问变量的部分称为变量范围。可以在给定变量的作用域之外声明具有相同名称和不同类型的变量。您不想这样做,尽管这样编写的代码读起来很混乱。
myInt = (int) myDouble;