以下计算结果为true:为什么string.format()的结果是一个字符串,即使是数字?
'{:.2f}'.format(2.0) > '{:.2f}'.format(10.0)
我想写一些使用dataframe.to_excel
两位小数(2为2.00)到excel,但它被显示为文本,而不是在一个单元格的数字。
更新:
import pandas as pd
data_table = [[1.0,2.0,3.0],[4.0,5.0,6.0]]
dataframe = pd.DataFrame(data_table)
writer = pd.ExcelWriter(fileName, engine='xlsxwriter')
dataframe.to_excel(writer,float_format='%11.2f', index=False)
writer.save()
它仍然显示6,而不是6.00。也许当我打开它
1 2 3
4 5 6
你为什么期望'str.format()'产生除字符串以外的任何东西?即使如此,如果舍入数字(限于2位小数)与未被占用的对应数字相比有什么不同?如果您需要近似平等,请使用'round()'函数。 –
Excel具有格式化选项,使用这些选项可以更改数字显示方式。将浮点格式化为字符串在Excel单元格中确实不起作用。 –
如上所述,'str.format()'产生一个字符串。原始数字未格式化 - 这就是格式化数字以字符串形式存储的原因。此外,Excel不会自动检测单元格内容,将格式化的“数字”转换为Excel格式设置后的数字? – TigerhawkT3