Java 格式加倍为字符串
可能重复:Java 格式加倍为字符串,java,android,number-formatting,Java,Android,Number Formatting,可能重复: 如何列出小数点后两位的数字?我试过这个方法:但没有运气。下面是代码。也许有人能帮我 package karcio.fuel.economy; public class FuelEconomy extends Activity { private EditText editText1; private EditText editText2; private TextView textView4; private TextView textView6; pri
如何列出小数点后两位的数字?我试过这个方法:但没有运气。下面是代码。也许有人能帮我
package karcio.fuel.economy;
public class FuelEconomy extends Activity
{
private EditText editText1;
private EditText editText2;
private TextView textView4;
private TextView textView6;
private Button button1;
private double miles;
private double liters;
private double result;
private double convertMilesToKm;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initParams();
}
private void initParams()
{
editText1 = (EditText)findViewById(R.id.editText1);
editText2 = (EditText)findViewById(R.id.editText2);
textView4 = (TextView)findViewById(R.id.textView4);
textView6 = (TextView)findViewById(R.id.textView6);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener()
{
public void onClick (View v)
{
calculate();
}
});
}
private void calculate()
{
miles = Double.parseDouble(editText1.getText().toString());
liters = Double.parseDouble(editText2.getText().toString());
convertMilesToKm = miles * 1.61;
result = 100 * liters / convertMilesToKm;
textView6.setText(Double.toString(convertMilesToKm));
textView4.setText(Double.toString(result));
}
}您可以这样做:
String str = String.format("%.2f", 3.99999);
textView.setText(str);
您可以这样做:
String str = String.format("%.2f", 3.99999);
textView.setText(str);
你可以试着用手来做
//This is just an example
double number = result; //result is YOUR variable (ex. result = 23.1231231241920312)
int tmp = number * 100; //2312.31231241920312
number = (double)tmp / 100; //23.12
希望这有帮助
注意:如果在另一行声明INT,则可以跳过该步骤
更新:使用此方法的优点是不需要创建速度更快的对象,但当然有很多方法。您可以尝试手动创建
//This is just an example
double number = result; //result is YOUR variable (ex. result = 23.1231231241920312)
int tmp = number * 100; //2312.31231241920312
number = (double)tmp / 100; //23.12
希望这有帮助
注意:如果在另一行声明INT,则可以跳过该步骤
更新:使用此方法的优点是不需要创建速度更快的对象,但当然有很多方法。这不是特定的Android问题。这不是一个特定的安卓问题,它的缺点是你需要多个对象来完成这个简单的任务。android指南中说,你需要创建最少的对象。你无论如何都会有一个字符串对象,这是一个字符串对象。当您设置文本时,您的方法最终将创建该字符串对象。您在这一点上是正确的,但是如果您测试执行该操作的性能,与手动操作和转换为字符串相比,您将注意到差异(在一个大循环中,当然只有一个是相同的)。Tnx该方法对我有效。字符串ConvertMilesToKm=String.format(“%.0f”,ConvertMilesToKm);textView6.setText(ConvertMilesToKm);我不得不承认,你的答案比我的答案对新用户更有用,因为我必须解释数字不是硬编码的,所以我会给你一个提示。缺点是,你需要多一个对象来完成这个简单的任务。android指南中说,你需要创建最少的对象。你无论如何都会有一个字符串对象,这是一个字符串对象。当您设置文本时,您的方法最终将创建该字符串对象。您在这一点上是正确的,但是如果您测试执行该操作的性能,与手动操作和转换为字符串相比,您将注意到差异(在一个大循环中,当然只有一个是相同的)。Tnx该方法对我有效。字符串ConvertMilesToKm=String.format(“%.0f”,ConvertMilesToKm);textView6.setText(ConvertMilesToKm);我不得不承认,你的答案比我的答案对新用户更有用,因为我必须解释数字不是硬编码的,所以我会给你一个upvoteI不能手动这样做,用户必须自己输入数字。我的意思是,你手动做点(.)后两位数字的限制。Tnx,我也会尝试你的方法:)谢谢你的快速反应,我是新手,我很感激:)别担心,你最好用答案,在你阅读代码的时候更容易理解。我不能手动操作,用户必须自己输入数字。我的意思是你手动执行点(.)后两位数的限制。Tnx,我也会尝试你的方法:)谢谢你的快速反应,我是新手,我很感激:)别担心,伙计,你最好带着答案去做,在你阅读代码时更容易理解。