我无法将字符串“u12345678910”转换为没有科学记数法的整数。所以基本上,它实际上需要恰好是 12345678910。
我是如何处理它的:
1.对“u”进行切片以获得我想要的数字(切片后它仍然是一个字符串)或使用.replace()
2.尝试了parseInt()、Number(),两者都给我一个科学计数法的数字。
3. parseFloat() & 然后 parseInt(),不知道为什么,但在某处读到这可能有效,但它没有。
为什么我需要这个确切的数字?
由于它是EmbeddedChart & Google Slides API 的chartId,因此出现错误:ID 必须为TYPE_INT32。
希望有人能解决这个问题,因为它是目前阻碍我项目的唯一因素:(
请在下面找到一些有关如何重现的示例代码。
*我正在使用 Google Apps 脚本,图表在电子表格中,并且我正在使用 Spencer Easton 的 Google Slides API 库
var ss = SpreadsheetApp.getActiveSpreadsheet(),
allSheets = ss.getSheets();
var chart = allSheets[0].getCharts()[0],
chartId = chart.getId(); // this returns 'u12345678910'
var chartStringNumber = chartId.slice(1); // returns 12345678910 (string)
var chartIdNumber = Number(chartStringNumber); // Here I want the result to be typeof INT & 12345678910, but i keep getting a number incl scientific notation. I have also tried parseInt().
最佳答案
内置 SpreadsheetApp 服务返回的 ChartID 是一个字符串值,可以使用 setId() 覆盖,并且以任意值开头 - 所以它不是您想要的 id。
要使用 Slides API,您需要“真实”图表 ID,该 ID 可从高级电子表格服务或直接从 Sheets API 获取。
您可以使用此代码通过高级服务枚举工作表及其图表和真实 ID。
var ch = Sheets.Spreadsheets.get(ss.getId(), {
"fields": "sheets(charts/chartId,properties(sheetId,title))"
});
var sheets = ch.sheets.map (function (d) {
return {
id:d.properties.sheetId,
name:d.properties.title,
charts:d.charts
}
});
关于javascript - 固定整数 Google 脚本的字符串数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42471508/