2017-06-23 12 views
0

整数を10進数に変換し、証明書の条件に応じて10進数2,3,4または5でフォーマットする必要があります。整数から変換後の10進数の書式

だから私はこのコードを使用しています

public NumberFormat decimalFormatter = new DecimalFormat("#,##0.00"); 
    public static NumberFormat decimalFormatter3 = new DecimalFormat("#,##0.000"); 
    public static NumberFormat decimalFormatter4 = new DecimalFormat("#,##0.0000"); 
    public static NumberFormat decimalFormatter5 = new DecimalFormat("#,##0.00000"); 
    public void run(Integer numeroDecimali, Articoli articoli){ 
     if(numeroDecimali == null || numeroDecimali == 2) 
      super.setValueAt(articoli.getPrezzoTot()!=null ? 
        decimalFormatter.format(articoli.getPrezzoTot()) : "", rowIndex, 7); 
     else if(numeroDecimali == 3) 
      super.setValueAt(articoli.getPrezzoTot()!=null ? 
        decimalFormatter3.format(articoli.getPrezzoTot()) : "", rowIndex, 7); 
     else if(numeroDecimali == 4) 
      super.setValueAt(articoli.getPrezzoTot()!=null ? 
        decimalFormatter4.format(articoli.getPrezzoTot()) : "", rowIndex, 7); 
     else if(numeroDecimali == 5) 
      super.setValueAt(articoli.getPrezzoTot()!=null ? 
        decimalFormatter5.format(articoli.getPrezzoTot()) : "", rowIndex, 7); 

を私は小数点以下の数を入れてはDecimalFormatに(2,3,4,5)私は、テキストの書式を設定することができます。 このコードは機能しますが、それほど多くのIF文なしでこれを達成する方法はありますか?コードを最適化するためにnumeroDecimaliの情報を組み合わせる方法はありますか?

+0

作業コードの改善に関する質問はhttps://codereview.stackexchange.com/に属しているため、この質問を議論の対象外としています –

答えて

0

あなたはこのようなものを使用することができます

String.format("%,." + numeroDecimali + "f", articoli.getPrezzoTot()); 

ちょうど numeroDecimaliは有効な値を持っている、ことを確認してください。

関連する問題