2017-04-17 26 views
0

如何在我的Java代碼中插入DecimalFormat。我想我的價值(resultat)像這樣###,###,###。00。 (Resultat)in result.setText(「rent is」+ String.valueOf(resultat)+「currency」);我正在嘗試幾個DecimalFormat,但沒有效果,因爲可能我沒有正確插入字符串中的decimalFormat。謝謝你給我看。如何在我的Java代碼中插入DecimalFormat

package albencreation.realestateapplication; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Rent extends AppCompatActivity { 

    EditText price = null; 
    EditText profit = null; 
    TextView result = null; 
    Button envoyer = null; 
    Button close = null; 
    Button info = null; 
    Button clear = null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.rent); 

     price = (EditText) findViewById(R.id.price); 
     profit = (EditText) findViewById(R.id.profit); 
     result = (TextView) findViewById(R.id.result); 
     envoyer = (Button) findViewById(R.id.buttcalculate); 
     close = (Button) findViewById(R.id.buttclose); 
     info = (Button) findViewById(R.id.buttinfo); 
     clear = (Button) findViewById(R.id.buttclear); 

     envoyer.setOnClickListener(envoyerListener); 
     close.setOnClickListener(closeListener); 
     info.setOnClickListener(infoListener); 
     clear.setOnClickListener(clearListener); 
    } 

    private OnClickListener envoyerListener = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String p = price.getText().toString(); 
      String o = profit.getText().toString(); 

      float pValue; 
      if (p.isEmpty()) { 
       pValue = 0; 
      } else { 
       pValue = Float.valueOf(p); 
      } 
      float oValue; 
      if (o.isEmpty()) { 
       oValue = 0; 
      } else { 
       oValue = Float.valueOf(o); 
      } 

      float resultat = oValue * pValue/100; 
      result.setText("the rent is " + String.valueOf(resultat) + " currency"); 
     } 
    }; 

    private OnClickListener closeListener = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent jumpage = new Intent(Rent.this, MainActivity.class); 
      startActivity(jumpage); 
      Rent.this.finish(); 
     } 
    }; 

    private OnClickListener infoListener = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent jumpage = new Intent(Rent.this, Inforent.class); 
      startActivity(jumpage); 
     } 
    }; 

    private OnClickListener clearListener = new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      price.getText().clear(); 
      profit.getText().clear(); 
      String defaut = "result rent"; 
      result.setText(defaut); 
     } 
    }; 

} 
+1

很好,你包括你的代碼,但'DecimalFormat'不會出現在你發佈的代碼中的任何地方。請參閱幫助中心的[問](https://stackoverflow.com/help/mcve)。 –

回答

0

DecimalFormat的格式屬性帶有圖案字符串的值。

DecimalFormat myFormatter = new DecimalFormat("###,###,###.00"); 
float resultat = oValue * pValue/100; 
result.setText("the rent is " + myFormatter.format(resultat) + " currency"); 

這通過將模式字符串傳遞給DecimalFormat構造函數來創建格式化程序。 format方法接受一個double值作爲參數,並返回String中的格式化數字。

+0

非常感謝,它工作! – Alex

0
result.setText("the rent is " + new DecimalFormat("###,###,###.00").format(resultat) + " currency"); 

我得到100,000,000.32100000000.32

0

增加額外的"###,"是多餘的,###,###.00將做這項工作。

DecimalFormat formatter = new DecimalFormat("###,###.00"); 
+0

謝謝,確實是多餘的。 – Alex