2011-07-22 29 views
0

我有一個JTable,其中一列是美元和美分的金額。我將這個TableColumn定義爲Double,它右對齊,並且在排序時,它將它排序爲double(而不是字符串)。這一切都很好。 我現在的問題是它截斷了尾部零。 100.00顯示爲100 0.00顯示爲0等。我嘗試了一個TableCellRenderer,但儘管這會導致顯示的數據列的尾部爲零,但數量現在都是左對齊的,並且JTable將其視爲字符串。
我希望在顯示中保留尾隨零,但也要保留數據類型,以便進行排序和右對齊。如果有更好的方法來做到這一點,數據類型不需要是雙精度型的。在JTable中顯示錢幣,但保留排序爲雙倍的能力

+2

很難說失敗的位置,因爲自定義渲染器可以以任何您想要的方式渲染該值,並且它們不會影響模型的數據類型。 (只是想說,讓其他讀者不會認爲自定義渲染器是錯誤的方法) – Kaj

回答

3

如果你想精確地處理金錢,你應該代表它作爲美分和整型,或BigInts如果你要處理大量。浮點數可能會導致問題,因爲他們患有precision problems

這將保留您的排序能力,消除尾隨零的問題,提供您所需的精度,並且使用自定義渲染器,您可以將小數點它需要。