当前位置: 首页 > 知识库问答 >
问题:

括号如何影响java中的类型转换?[复制]

山越
2023-03-14

我想知道为什么“k”和“a”的结果不同。唯一的区别是,我在创建k时添加了一对额外的括号。我认为结果应该是一样的。我的环境是Eclipse EE 2021,JDK17。如果您能分享您的观点,我们将不胜感激。

package test;

public class Test05 {

    public static void main(String[] args) {

        double k = (double) ((3-2)/3);      
        System.out.println("k="+k);
        
        double a =(double) (3-2)/3;
        System.out.println("a="+a);
    }
    

}

结果:

k=0.0
a=0.3333333333333333

共有1个答案

夏侯渊
2023-03-14

在第一个例子中,paranthese中的表达式首先作为整数计算。你试图用1除以3,在整数算术中,它是零。

在第二个示例中,首先将减法的结果转换为double,然后将其除以3。将一个double除以一个整数得到一个double。

如果在第一个示例中将3或2指定为双精度,将得到与第二个示例相同的结果:

double k = (double) ((3.0-2)/3);      
System.out.println("k="+k);
 类似资料:
  • 问题内容: 我想在一个程序包中打印所有的类名,并在每个程序包中打印相应的属性及其数据类型。 在一个代码中,我能够以字符串形式获取类名。在另一个代码中,我可以使用以下方法获取属性及其数据类型 但是我想合并两个代码。由于在第一个代码中我以字符串的形式获得了类名,我无法使用,因为这里是类型。 因此,我需要一种将“ 类名”从类型转换为类型的方法。 我试过了,但是没有用。 问题答案: 确保是完全合格的类名,

  • 使用时,我只想取回中的数据 和

  • 上面代码的输出是,这是预期的。

  • 我正在努力理解在这段代码中创建的C()对象。 我理解,当它在第3行创建时,它是一个对象,具有A类中的引用。我还了解到,您可以从B类中的引用中引用第4行的相同对象。但是我不明白第4行参考o1的施法。这改变了对象还是仅仅改变了它被引用的方式? 我真的很感激你的解释:)谢谢

  • 问题内容: 我有一个包含标记的字符串列表。 令牌是: {ARG:token_name}。 我也有标记的哈希图,其中key是标记,value是我要用来替换标记的值。 当我使用“ replaceAll”方法时,出现错误: java.util.regex.PatternSyntaxException:非法重复 我的代码是这样的: 并且valueFromHashMap包含{和}。 我将此哈希图作为参数。

  • 在的内部类中。 演员们在这里是怎么工作的?我在这里期待,因为我们要将一个纯超类对象转换为子类。