如何用java和顺序整数值表示50亿

如何用java和顺序整数值表示50亿,java,Java,我想知道如何表示5400000000540000000015400000002,。。。。在爪哇 (如何用java表示50亿) java Int只能保存2^32-1, java long持有2^64-1,…但我在表示5400000000540000000154000000002时遇到问题,…而double也没有帮助 有人能提供一些见解,如何在不必对字符串进行乘法的情况下表示这样的大值(在JAVA中) 因为Long max=Long(5462205000);只是我不是为我做的。 thx-advanc

我想知道如何表示5400000000540000000015400000002,。。。。在爪哇 (如何用java表示50亿)

java Int只能保存2^32-1, java long持有2^64-1,…但我在表示5400000000540000000154000000002时遇到问题,…而double也没有帮助

有人能提供一些见解,如何在不必对字符串进行乘法的情况下表示这样的大值(在JAVA中) 因为Long max=Long(5462205000);只是我不是为我做的。
thx-advanced

您的64位整数类型可以轻松容纳50亿这样的数字。即使是已签名的版本也最多可以保存值
9223372036854775807
。慢bigint库不是必需的

要在代码中指定这些,您需要使用所谓的“long int literal”,这意味着在数字的末尾添加一个
L
。例如:

long x = 5000000000L;

您遇到了语法问题。这将很好地解决您的问题:

Long max = new Long(5462205000L);

您需要添加
L
后缀来表示这是一个长后缀,否则Java编译器会假设您输入的是一个整数,而这个#(任何超过2147483647的内容)超出了整数的范围。

在末尾加上一个L,例如

5400000001L
          ^

因此编译器知道它是一个长的

肯定
5400000000
可以用
long
表示吗?在任何情况下,这样的序列可能更好地编码为“范围”类型,它有一个开始和一个计数(或结束)。然而,我不知道Java中有任何这样的标准类型。啊,是的,我想知道L是用来做什么的。我最后和大整数一起去了。谢谢。每当我/必须/创建一个无限循环时,我都会选择循环,直到太阳在20亿年后熄灭<代码>while(System.currentTimeMillis()<7773669572582567141l){…}