我不确定为什么我的Google电子表格应用中的代码会以这种方式运行。我在记录器中的预期输出应为“Zip值为05044”但我完全得到另一个数字。
function getShippingType(){
var zip = 05044;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet,
digitOne,
sheetName,
zipToOutput = [];
Logger.log("Zip Value is " + zip);
Logger.log(zipToOutput);
return zipToOutput;
}
答案 0 :(得分:2)
JavaScript一直试图强迫"数据类型为数据类型,它认为"它应该是。您的Zip
变量被实例化为数字。然后你试图连接一个字符串和一个数字。你可能会得到这样的东西:
Zip Value is 2596
您无法将号码转换为zip.toString()
的字符串,因为它只会返回" 2596"作为一个字符串而不是" 05044"。
您需要使用引号实例化zip
:
var zip = "05044";
这与Logger.log()
方法无关。这就是JavaScript的工作原理。
现在你正在"硬编码"拉链。但是,如果从电子表格中检索值,并认为变量类型不是您想要的,则可以使用typeof
测试数据类型。
Logger.log(typeof zip)
答案 1 :(得分:0)
0 5044中的前导零使其成为八进制数,因此删除前导零以使其为5044。
答案 2 :(得分:0)
看起来如果zip被解释为字符串而不是int。如果你试试
public Employee(String id, String name, double salary, String department, String position, int years)
{
this.id = id;
this.name = name;
this.salary = salary;
this.department = department;
this.position = position;
this.years = years;
}
public void setID(String id){
this.id = id;
}
public String getID(){
return id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setSalary(double salary){
this.salary = salary;
}
public double getSalary(){
return salary;
}
public void setDepartment(String department){
this.department = department;
}
public String getDepartment(){
return department;
}
public void setPosition(String position){
this.position = position;
}
public String getPosition(){
return position;
}
public void setYears(int years){
this.years = years;
}
public int getYears(){
return years;
}
public String toString()
{
return "Identification " + this.id + "\nName: " + this.name + "\nSalary: "
+ this.salary + "\nDepartment: " + department + "\nPosition: "
+ position + "\nYears of Service: " + years;
}
日志文件很好。