2017-03-13 12 views
0

Windows7でJava8でWebアプリケーションを開発しました。私はwarファイルを生成し、UbuntuのTomcat8にデプロイしました。すべて正常に動作しますが、数値を書式設定して印刷すると、出力が異なります。例えば、Windowsでは "74,00"と表示されますが、Linuxでは "74 .. 00"と表示されます。 は、ここに私のコードです:JavaアプリケーションのWindowsからLinuxへの移植 - 文字フォーマット

//呼び出し方法

formatCurrency(String.format("%.2f", amount)); 

//メソッド

private String formatCurrency(String number){ 
    String formattedNumber = ""; 
    try { 
     String[] support = number.split(","); 
     String intero = support[0]; 
     if (intero.length() > 3){ 
      formattedNumber = intero.substring(0, intero.length() - 3) + "." + intero.substring(intero.length() - 3); 
      if (intero.substring(0, intero.length() - 3).length() > 3){ 
       formattedNumber = intero.substring(0, intero.length() - 6) + "." + formattedNumber; 
      } 
     } 
     else 
      formattedNumber = support[0]; 

     formattedNumber = formattedNumber + "," + support[1]; 
    } 
    catch (Exception ex) { 
     System.out.println("errore in stampa " + ex); 
    } 
    return formattedNumber; 
} 
+0

まあ、私は私には矛盾のようなにおいがnumber'あなた '文字列 –

+0

は、私は数を印刷する必要があるので、私はそれが文字列だとしても、機能的には、数ある「番号」それを呼び出すことを始めるだろう。 ..命名規則の一部を手伝ってくれますか? – raffa78es

+0

あなたの入力は何ですか?また、すぐに問題を把握するのに役立つコードに入出力のログを記録する場合は、 – rpfun12

答えて

2
デフォルトロケールを使用するデフォルトのJavaのフォーマット機能によって

、それは非常に可能性だとデフォルトのロケールあなたのWindowsシステムとあなたのLinuxシステムでは異なっています。あなたは、明らかに変that allows you to specify the desired locale

formatCurrency(String.format(Locale.US,"%.2f", amount)); 

に使用し、あなたのユースケースのための適切なロケールを使用する必要があります。

メモとして、そのコードは非常に畳み込まれていませんか?私は疑うように - - 場合


は唯一の目標は、私がずっと簡単だ。この代替案を提案し、はるかに少ないエラーが発生しやすいことがあり、桁区切りを取得するのですか?

private String formatCurrency(double amount) { 
    NumberFormat nf = NumberFormat.getInstance(Locale.ITALIAN); 
    nf.setGroupingUsed(true); //force thousands separators, for Locale.ITALIAN it's not even needed 
    return nf.format(amount); 
} 
+0

ありがとう、 "Locale.ITALY"で解決された問題...ありがとう、ありがとう! – raffa78es

+0

あなたを助けてくれてうれしいです。私の最後の発言に戻るには、**すべての**コードは何千ものセパレータを配置するためだけにあると仮定していますか? – fvu

+0

はい、あなたは正しいです、あなたのコードスニペットをありがとう、私はそのライブラリを知らなかった – raffa78es

関連する問題