Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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 println输出中的加法_Java - Fatal编程技术网

Java println输出中的加法

Java println输出中的加法,java,Java,我在浏览一些java拼图时发现了这个 public class Elementary { public static void main(String[] args) { System.out.println(12345 + 5432l); } } 它不是应该打印66666,而是打印17777。有人能解释一下吗?你现在的号码写为char l。你必须写数字1。 你看到l和1的区别了吗?你现在把数字写成了字符l。你必须写数字1。 你看到l和1的区别了吗?我认为,由于

我在浏览一些java拼图时发现了这个

public class Elementary {
    public static void main(String[] args) {
        System.out.println(12345 + 5432l);
    }
}

它不是应该打印66666,而是打印17777。有人能解释一下吗?

你现在的号码写为char l。你必须写数字1。
你看到l和1的区别了吗?你现在把数字写成了字符l。你必须写数字1。
你看到l和1的区别了吗?我认为,由于5432l中的最后一个不是数字“1”,而是字母“l”,因此编译器会跳过它,结果是将12345与5432相加,我认为,由于5432l中的最后一个不是数字“1”,而是字母“l”,因此编译器会跳过它,结果是将12345与5432相加

public class Elementary {
public static void main(String[] args) {
    System.out.println(12345 + 5432l);
}
}
如果你仔细看它最后的字符“l”,5432l不是“1”

这意味着它是“长”类型值

如果没有后缀,且为整型,如5623,则假定为int。如果不是整型,如3.14159,则假定为double

long有特定的后缀,例如39832L,float有2.4f,double有-7.832d。 除此之外,我们还需要计算数字

现在你们的问题是,若你们把这两个数字12345+5432相加,你们会得到17777

如果你仔细看它最后的字符“l”,5432l不是“1”

这意味着它是“长”类型值

如果没有后缀,且为整型,如5623,则假定为int。如果不是整型,如3.14159,则假定为double

long有特定的后缀,例如39832L,float有2.4f,double有-7.832d。 除此之外,我们还需要计算数字


现在在你们的问题中,若你们把这两个数字12345+5432相加,你们会得到17777,我同意上面的答案。但也值得一提的是,这是一个非常常见的错误,这也是为什么人们非常欣赏以这种方式编写代码的原因:

System.out.println(12345 + 5432L);

L-大写,更直观地显示变量的类型

我同意上面的答案。但也值得一提的是,这是一个非常常见的错误,这也是为什么人们非常欣赏以这种方式编写代码的原因:

System.out.println(12345 + 5432L);

L-大写,更直观地显示变量的类型

下面是答案的说明:- 1.如果打印12345+54321=66666。 2.您的情况是12345+5432l

=12345+5432此数字以ll为前缀,长度较长

=12345整数+5432长

=长12345+5432

=17777

更多说明请查看下面的代码

        int i=12345;
        long j=5432l;
        int sum =  (i + j); //compilation issue
        long sum = (i + j); // no compilation 
        int sum = (int) (i + j); //Type cast works fine. 

以下是答案的说明:- 1.如果打印12345+54321=66666。 2.您的情况是12345+5432l

=12345+5432此数字以ll为前缀,长度较长

=12345整数+5432长

=长12345+5432

=17777

更多说明请查看下面的代码

        int i=12345;
        long j=5432l;
        int sum =  (i + j); //compilation issue
        long sum = (i + j); // no compilation 
        int sum = (int) (i + j); //Type cast works fine. 

请注意l和1之间的差异,这是一个多么可怕的难题。谁会这样写代码?我太笨了。。我没注意到。@duffymo有人在演示为什么用L代替L。是的,@AndyTurner。仍然很糟糕。请注意l和1之间的差异,这是一个多么糟糕的难题。谁会这样写代码?我太笨了。。我没注意到。@duffymo有人在演示为什么用L代替L。是的,@AndyTurner。还是很糟糕。因此编译器会跳过它。是的,编译器会将它视为一个长文本,这意味着第一个数字也会被加宽为一个长的、长的加法,并且会调用PrintStream.printlnlong重载。是的,你是对的,因此编译器会跳过它,它使编译器将其视为一个长文本,这意味着第一个数字也被加宽为一个长文本,执行长加法,并调用PrintStream.printlnlong重载。是的,你是对的