2011-02-16 42 views
2

我知道關於同一問題浮出水面的各種帖子。無需科學記數法就可以格式化一張Double文件嗎?

挖掘它有點不同,它可能有點顯而易見,但我會需要您的意見。

我目前使用Hibernate搜索Lucene索引實體屬性。

我在我的實體上有一堆Double屬性。

這些實體使用默認的橋樑從Lucene的(橋即一個負責轉換長整型StringToLong)一旦科學記數法開始被使用的給我麻煩。

我試圖在上顯示DataTables上。 xhtml信用卡和借記金額,其長度可以長達18位,其數據庫(DB2)類型爲BIGINT

  1. 我不能將數據庫類型 更改爲長例如。
  2. 我不能更改我的實體 的雙重 類型的屬性要麼例如龍

所以什麼問題? 有沒有辦法從一個字符串說「1234567890」來檢索一個Double的格式是1234567890而不是1.23456789E9,因爲它默認由Double.parseDouble(FormattedString)完成?

PD:我知道DecimalFormat的存在,但是考慮到使用這個formater會給我一個正確的字符串格式說:「#######。E0」但我真正需要的是一個Double這樣的格式,但是當做Double.parseDouble(FormattedString)我會放棄這樣的格式。

希望我清楚,並感謝您的任何幫助。

+1

投它長? – aioobe 2011-02-16 15:24:07

+0

它不能通過 camiloqp 2011-02-16 15:33:31

回答

6

有一個字符串的方式說「1234567890」檢索雙,其值是1234567890,而不是1.23456789E9因爲它是被自動進行的由Double.parseDouble(FormattedString)

你的問題沒有意義。 1234567890與1.23456789E9的值相同,而double表示其中的一個,當且僅當它也表示另一個時。

我知道的DecimalFormat是否存在等,然而使用該格式化裝置會給我正確格式化字符串考慮說:「####### E0」,但我真正需要的是一個Double使用這種格式,但是在做Double.parseDouble(FormatedString)時,我會放棄這種格式。

不,沒有辦法構建Double,以便以某種方式顯示它。 DoubletoString方法就是這樣,它不能改變。

您唯一能做的就是例如使用DecimalFormatString.format,但正如您所指出的那樣,您總是會得到String

4

對Lucene一無所知,但在.xhtml文檔中永遠不會有Double。它總是一個字符串。 Double沒有格式,只有Double的字符串表示。

+0

上的迭代動態完成好吧,我忘了提及這些雙打如何顯示。我有一個遍歷不同屬性之間的實體列表,我在這裏提到的Double類型屬性。因此,無視.xhtml部分,並檢查我真正的問題**那麼最新的問題**謝謝 – camiloqp 2011-02-16 15:24:57

1

所以我終於得到了解決我的問題。 圍捕以後有什麼aioobe延Schauder不說。我能夠將文本有以下標籤動態格式化我.xhtml:

<h:outputText value="#{recordTable[column.property]}" 
       rendered="#{column.header ne 'Details' and 
          column.header eq ('Total Credit Amount' or 
              'Total Debit Amount')}"> 
       <f:convertNumber pattern="########"/> 
</h:outputText> 

感謝在打印前使我清楚我已經模糊了這些基本的東西:)

相關問題