Xlsxwriter,如何提高浮点数的十进制精度?

问题描述

我为单元格创建了这种浮动格式:

floating_point_bordered = workbook.add_format({'num_format': '#,##0','border': 1})

worksheet.write(f'G{row}',position.price,floating_point_bordered)

当我生成xlsx文件时,我得到以下结果:

Image one

但是此浮点数的实际值是:

Image two

如果提高精度,如何强制浮动单元格显示其值?

解决方法

XlsxWriter使用Excel的数字格式,因此您应该先在Excel中弄清楚所需的格式。

可能类似于#,##0.00。例如:

import xlsxwriter

workbook = xlsxwriter.Workbook("test.xlsx")
worksheet = workbook.add_worksheet()

price = 879.65421

floating_point_bordered = workbook.add_format({'num_format': '#,##0.00','border': 1})

worksheet.write(2,1,price,floating_point_bordered)

workbook.close()

输出enter image description here

但是,数字格式必须在美国语言环境中,“分组/千位”分隔符为“,”,“小数点”为“”。 (点)。有关更多信息,请参见Number Formats in different locales上XlsxWriter文档的这一部分。