簡體   English   中英

使用JSTL formatNumber通過curl浮點舍入錯誤

[英]Floating point rounding error using JSTL formatNumber via curl

從Oracle Commerce Platform ATG 11.2開始,當我點擊JBOSS服務器時,我在Web瀏覽器請求和curl之間得到了不同的結果 - 就像formatNumber被忽略一樣,並且值受到浮點舍入錯誤的影響。

<span itemprop="price-currency" content="USD">$</span>

<span itemprop="price" class="selection-price">
    <fmt:formatNumber type="currency"
                      pattern="##0.00;"
                      value="${selectionItem.listPriceAmount}"/>
</span>

在100%一致性的情況下,在瀏覽器中點擊頁面將導致格式化值,例如:

  • $ 27.99
  • $ 20.00
  • $ 10.00

但是,Google抓取網站時發現了一個問題,只需通過相同頁面的curl即可100%重現。 這些相同的值顯示為:

  • $ 27.990000000000002
  • $ 20.0
  • $ 10.0

內置沒有用戶代理邏輯,只有JSTL formatNumber

知道為什么通過完全相同的JSP完全相同的路徑會產生不同的結果嗎?

fmt:formatNumber在無法確定區域設置時繞過typepattern屬性。 這在JSTL規范中有記錄

如果此操作無法確定格式化區域設置,則它使用Number.toString()作為輸出格式。

有關如何控制區域設置解決方案,請參見9.2格式化區域設置。

使用curl時嘗試設置標頭accept-language

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM