我可以在java。
中传递大于999 999 999的数字作为参数当我这样做时,它会给出编译器错误,文字999 999 999 9的类型超出范围
passNumber(9999999999);
public String passNumber(long number){
if(number > 999999999)
throw new BigNumberException("Number too large")
}
答案 0 :(得分:8)
这是因为9,999,999,999被编译器视为int
,并且大于Integer.MAX_VALUE
(2,147,483,647)。
您可以使用long
:9999999999L
。
答案 1 :(得分:6)
使用9999999999L
告诉编译器它是一个长文字,而不是一个int文字。
答案 2 :(得分:3)
那是因为90亿是超出整数范围(signed int最高为2,147,483,647,unsigned int最高为4,294,967,295)。
查看here了解详情。