0

我有一个 JTable,其中一列是以美元和美分为单位的金额。我将此 TableColumn 定义为 Double 并且它正确对齐,并且在排序时,它会将其排序为双精度(而不是字符串)。这一切都很好。我现在的问题是它会截断尾随零。100.00 显示为 100 0.00 显示为 0,等等。我尝试了 TableCellRenderer,但尽管这会导致货币列显示尾随零,但现在所有金额都是左对齐的,JTable 将其视为字符串。
我希望尾随零保留在显示中,但也保留数据类型,以便进行排序和右对齐。如果有更好的方法可以做到这一点,则数据类型不需要是双精度。

4

2 回答 2

4

我找到了完美的链接。这第一次奏效。只需复制代码。

http://tips4java.wordpress.com/2008/10/11/table-format-renderers/

于 2011-07-22T06:34:48.490 回答
3

如果您想精确处理金钱,您应该将其表示为美分和整数,或者如果您必须处理大量金额,则应使用 BigInts。浮点数可能会导致问题,因为它们存在精度问题

这将保留您的排序能力,消除尾随零的问题,为您提供所需的精度,并且使用自定义渲染器,您可以获得所需的小数点。

于 2011-07-22T09:25:05.217 回答