簡體   English   中英

Java NumberFormatException舊版代碼

[英]Java NumberFormatException Legacy Code

我有一個在Tomcat / Jboss下運行的舊程序(java 1.4),但是,我已將其復制到新服務器(java 1.7)中,並引發以下異常。

java.lang.NumberFormatException: For input string: "0000000000000000009011,00"
    sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1250)
    java.lang.Double.valueOf(Double.java:504)
    java.lang.Double.<init>(Double.java:597)

由於我無權訪問源代碼,有什么辦法可以解決此問題? 我暫時還沒有嘗試使用Java 1.4

我認為這不是由於Java版本。 ""period(.)替換comma(,) period(.)

例如,考慮一個字符串: String str = "0000000000000000009011,00";

現在您可以嘗試-

double result = Double.valueOf(str.replace(",", "."));

要么

double result = Double.valueOf(str.replace(",", ""));

而是使用NumberFormat進行解析:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("0000000000000000009011,00");
double d = number.doubleValue();

這樣,您可以為數字表示選擇正確的語言環境。 在上面的示例中,我使用了France-他們使用逗號作為小數點。

您應該在舊服務器上查找jvm參數。 您的語言參數將逗號實際上更改為點,因此您不需要任何代碼更改。

暫無
暫無

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

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