我在Android应用中为变量使用Double数据类型。
它只需要一个数字,并显示该数字的增加百分比:
例如1,000,000加1000%= 1.1E7
问题是我不想要指数显示(E),我希望它是十进制的。
这是该区域的代码片段,当用户单击“计算”按钮时,信息将显示在editText(文本框)中
enter code here
Button calc2 = (Button)findViewById(R.id.button1);
calc2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
EditText number1 = (EditText)findViewById(R.id.editText1);
EditText number2 = (EditText)findViewById(R.id.editText2);
EditText number3 = (EditText)findViewById(R.id.editText3);
double editText1 = Double.parseDouble(number1.getText().toString());
double Pluspercent = Double.parseDouble(number2.getText().toString());
double editText3 = Double.parseDouble(number3.getText().toString());
double Result1 = 0 ;
double Result2 = 0;
Result1 = Pluspercent * 0.01 ;
Result2 = editText1 * Result1;
editText3 = editText1 + Result2 ;
number3.setText(editText3 + "");
}
});
enter code here
代码可以工作,但显示为E.你能告诉我用什么代码来简单地让它以十进制显示结果。小数结果应为11,000,000
目前无需担心逗号。
有些语言使用Decimal数据类型,我会考虑这个问题。任何人都知道为什么Android没有这个?
我看了
http://lecturesnippets.com/android-variables-data-types/
显示了数据类型的列表,但Double似乎是最大的容器,并使用了我不想要的Exponent。
感谢您的帮助。
的Al
答案 0 :(得分:0)
您正在寻找DecimalFormat个对象。您希望将双精度值传递到DecimalFormat.format( ... )
方法以获取StringBuffer
,然后将要显示的其余文本附加到StringBuffer
,然后再将其传递给您EditText
。
你会对这种方法特别感兴趣:
public StringBuffer format (double value, StringBuffer buffer, FieldPosition position)