gpt4 book ai didi

java - java int 中的整数对于值 08 来说太大了,但是当我只传递 8 或 11,12,13 时就可以了

转载 作者:行者123 更新时间:2023-12-01 11:17:32 24 4
gpt4 key购买 nike

Employee("Helen",16000,1965,08,03),编译器抛出错误,整数对于值来说太大:08,但编译器对值 11 或只是 8 没有问题。

      import java.util.*;
class Employee{
private String name;
private double salary;
private Date hireDay;

public Employee(String n, double s,int year, int month, int day){
name = n;
salary = s;
GregorianCalendar calendar = new GregorianCalendar(year,month-1,day);
hireDay = calendar.getTime();
}
public String getName(){
return name;
}
public double getSalary(){
return salary;
}
public Date getHireDay(){
return hireDay;
}

public void raiseSalary(double byPercent){
double raise = salary * byPercent / 100;
salary += raise;

}

}

public class EmployeeTest{
public static void main(String[] args){

Employee[] staff = new Employee[3];
staff[0] = new Employee("Jack",15000,1992,03,07);
staff[1] = new Employee("James",18000,1987,05,02);
>> staff[2] = new Employee("Helen",16000,1965,08,03);

//这就是问题所在。当我传递 08 时,当我传递 08 或找到的某个两位数时,它会抛出错误 }

Output :

[shadow@localhost java]$ javac EmployeeTest.java
EmployeeTest.java:37: error: integer number too large: 08
staff[2] = new Employee("Helen",16000,1965,08,03);
^
1 error
[shadow@localhost java]$

最佳答案

这是因为,在 Java 中,以 0 开头的数字(如 08)被视为八进制(基数为 8)。而且八进制中没有8。

(根据定义,八进制仅使用数字 0-7)

作为实验,您可以尝试 07011 并查看它们是否有效,或者尝试 0809 并发现它们不起作用。

关于java - java int 中的整数对于值 08 来说太大了,但是当我只传递 8 或 11,12,13 时就可以了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31633461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com