我正在制作一个小型会计程序。然后我的问题是在 jTable 上显示一个大数字时。
我使用SELECT
数据库中的方法,然后将ResultSet转换为TableModel,然后将其设置为jTable。问题出在显示大数字时(即 10.000.000 它将在 jTable 上显示 1.0E7)有没有办法保持原始格式(10000000)而不是 1.0E7?
顺便说一下,我使用 Double 类型作为元素类型。
我正在制作一个小型会计程序。然后我的问题是在 jTable 上显示一个大数字时。
我使用SELECT
数据库中的方法,然后将ResultSet转换为TableModel,然后将其设置为jTable。问题出在显示大数字时(即 10.000.000 它将在 jTable 上显示 1.0E7)有没有办法保持原始格式(10000000)而不是 1.0E7?
顺便说一下,我使用 Double 类型作为元素类型。
确保您的表模型覆盖getColumnClass()
并为您的列 ( Double.class
) 返回适当的类型。
这将使表格使用具有默认语言环境的 DecimalFormat 来格式化数字,而不是调用toString()
.
旁注:使用双倍的钱,尤其是大额,是一个非常糟糕的主意。您应该改用 BigDecimal。
它说 1.0E7 的原因是因为这是所使用的数字格式提供的精度。这是一种更科学的说法,即“大约 10,000,000 行”。
您真的想在数百、十和单位列中提供一个几乎绝对错误的值,而不是声明其分辨率限制的精确估计吗?