[英]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.