Google脚本转换数字的方式与javascript不同
我正在尝试将字符串转换为int。当字符串是一个前导为零的数字时,Google脚本似乎遇到了麻烦。将“07”转换为7很好,将“08”转换为NaNGoogle脚本转换数字的方式与javascript不同,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在尝试将字符串转换为int。当字符串是一个前导为零的数字时,Google脚本似乎遇到了麻烦。将“07”转换为7很好,将“08”转换为NaN function test_parse_int() { var ss = SpreadsheetApp.getActiveSpreadsheet(); // parses to 7 ss.toast( parseInt("07") ); // parses to NaN ?!? ss.toast( parseInt("08") );
function test_parse_int() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// parses to 7
ss.toast( parseInt("07") );
// parses to NaN ?!?
ss.toast( parseInt("08") );
}
我用JavaScript测试了它,结果很好
<script>
// parses to 7
document.writeln(parseInt("07"));
// parses to 8
document.writeln(parseInt("08"));
</script>
//解析为7
书面文件(parseInt(“07”));
//解析为8
书面文件(parseInt(“08”));
这种行为对我来说毫无意义,这是一个错误吗?我遗漏了什么吗?来源:[归功于@teemu comment]
如果输入字符串以“0”开头,则基数为8(八进制)或10
(十进制)。具体选择哪个基数取决于实现。
ECMAScript 5指定使用10(十进制),但不是所有浏览器
支持这一点。因此,使用时请始终指定基数
帕森特
因此,请明确提及基数
大概是这样的:
function test_parse_int() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// parses to 7
ss.toast( parseInt("07", 10) );
// parses to NaN ?!?
ss.toast( parseInt("08", 10) );
}
关键字是“octal”,请正确使用基数参数。“许多实现到2013年还没有采用这种行为,而且由于必须支持较旧的浏览器,所以请始终指定基数“好的,我明白了。”。谢谢