Python 在更新单元格值时,google电子表格API是否会对数字进行四舍五入?

Python 在更新单元格值时,google电子表格API是否会对数字进行四舍五入?,python,google-sheets-api,Python,Google Sheets Api,因此,我试图更新google sheets电子表格中的值,出于某种原因,当我使用spreadsheets.values.update方法时,我试图填充的值会四舍五入 示例 sheet = service.spreadsheets() value = [[myfunction(), 10, 123]] body = {'values': value} result = sheet.values().update(spreadsheetId=SPREADSHEET_ID,

因此,我试图更新google sheets电子表格中的值,出于某种原因,当我使用
spreadsheets.values.update
方法时,我试图填充的值会四舍五入

示例

sheet = service.spreadsheets()
value = [[myfunction(), 10, 123]]
body = {'values': value}
result = sheet.values().update(spreadsheetId=SPREADSHEET_ID,
                               range=RANGE_NAME,
                               valueInputOption='RAW',
                               body=body).execute()
其中
myfunction()
返回一个整数。例如,使用的整数为
1212650293435022848

工作表确实会更新,但填写的值是

[1212650293435023000, 10, 123]
而不是

[1212650293435022848, 10, 123]
这是我的代码的问题还是API本身的问题?

注意事项 谷歌电子表格目前不支持大整数。这是其数字格式的一个限制

可能的解决办法 您可以使用应用程序脚本自定义函数处理字符串格式的大整数:

由于Apps脚本与JavaScript配合使用,您可以使用BigInt()构造函数将字符串解析为大整数

参考文献


BigInt还将6836735342561722374这样的数字修改为6836735342561722368。

最后,我做了修改,以便在将整数发送到电子表格之前将其转换为字符串。这样就没有损失,我也不必使用BigInt()。

我相信谷歌电子表格在内部使用double。它不支持大整数。我很确定这不是你的错,你也无能为力。谢谢你提供的信息,弗兰克!我可能会等待一些其他的答复来确定,但我会记住这个假设。