2016-05-14 26 views
-1

Javaでは、フォーマット「0。##」の文字列を浮動小数点数に解析しようとしています。文字列は常に小数点第2位を持つ必要があります。文字列をJavaの小文字2小文字に変換する

public ArrayList getFixRateDetails (String merchantccy,String paymodetype,String amount) 

{ 
     String returnAmt =""; 

ArrayList list= new ArrayList(); 

     float value=-1; 
     try { 
      NiCurrencyConverterProcessor nicc= new NiCurrencyConverterProcessor(); 
      list=nicc.getFixRateDetails(merchantccy,paymodetype); 
      Float i = (Float.parseFloat((String) list.get(0))); 
      Float j = (Float.parseFloat(amount)); 


      value=i*j; 
      list.set(0, value); 
      list.add(2, i); 
      GenericExceptionLog.log("PayPalUtility.java : In getFixRateDetails() : value:"+list,"paymenttarasectionsevlet111"); 
      DecimalFormat df = new DecimalFormat("0.00"); 
      String ReturnAmt = df.format(returnAmt); 
      returnAmt=String.valueOf(value).trim(); 
      GenericExceptionLog.log("PayPalUtility.java : In getFixRateDetails() : value:"+returnAmt,"paymenttarasectionsevlet222"); 
     } catch (Throwable t) { 
      GenericAsyncLogger.Logger(t,"ERROR","DB","Transaction","MIGSTxnUtility.java","postingAmtConversion()","NA","NA","","","paymenttarasectionsevlet"); 
      //GenericExceptionLog.exceptionJava(t,"postingAmtConversion()", "MIGSTxnUtility"); 
     } 
      return list; 
     } 
} 
+1

だから問題は何ですか? – Mureinik

+0

'String.format()'を使用してください。 –

+0

私はこのコードを試していますが、変換されません。 –

答えて

0

書式設定された出力を別の変数(ReturnAmt)と、returnAmtを出力するログに割り当てています。それは、フォーマットせずに値を印刷することは明らかです。

は、参照してください。詳細については

DecimalFormat formatter = new DecimalFormat("0.00"); 
returnAmt = formatter.format(value); 

を試してみてくださいDecimalFormat

例:

public static void main(String...args){ 
     String returnAmt =""; 
     Float i = 100f; 
     Float j = 200f; 
     Float value=i*j; 
     DecimalFormat formatter = new DecimalFormat("0.00"); 
     returnAmt = formatter.format(value); 
     System.out.println(returnAmt); 
    } 

OUTPUT:

20000.00

関連する問題