Android Studio 中参数的圆形浮点数或双精度数
Round float or double numbers in Android Studio from parameters
我已经阅读了很多关于如何对数字进行舍入的文章,无论是浮点数还是双精度数以显示,例如,只有两位小数,当你使用已经定义的变量时它看起来很容易,但在我的情况下,所有数字都是通过 InputEditText 输入的,我不知道应该把小数限制放在哪里,所以,例如,显示“2543.789906”,它显示“2534.78”
**My code:**
package com.example.converfuel;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class Timeextends MainActivity {
private Spinner spinner1, spinner2;
private Button btnSubmit;
private EditText from;
private TextView to;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_masa);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
from = (EditText) findViewById(R.id.InputEditText);
to = (TextView) findViewById(R.id.OutputTextView);
spinner1 = (Spinner) findViewById(R.id.spinner1);
List<String> list1 = new ArrayList<String>();
list1.add("Nanosecond");
list1.add("Microsecond");
list1.add("Milisecond");
list1.add("Second");
list1.add("Minute");
list1.add("Hour");
list1.add("Day");
list1.add("Week");
list1.add("Month");
list1.add("Year");
list1.add("Decade");
list1.add("Century");
ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list1);
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
List<String> list2 = new ArrayList<String>();
list2.add("Nanosecond");
list2.add("Microsecond");
list2.add("Milisecond");
list2.add("Second");
list2.add("Minute");
list2.add("Hour");
list2.add("Day");
list2.add("Week");
list2.add("Month");
list2.add("Year");
list2.add("Decade");
list2.add("Century");
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list2);
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter2);
}
public void onClick (View v){
int index1 = spinner1.getSelectedItemPosition();
int index2 = spinner2.getSelectedItemPosition();
float value = Float.parseFloat(from.getText().toString());
//
//
float ratio[] = {3.154e+18f, 3.154e+15f, 3.154e+12f, 3.154e+9f, 5.256e+7f, 876000f, 36500f, 5214f, 1200f, 100f, 10f, 1.0f};
float result = value / ratio[index1] * ratio[index2];
to.setText(result + "");
}
}
感谢您的帮助。
试试这个方法
DecimalFormat df = new DecimalFormat("#.##");
String strResult = String.valueOf(Double.valueOf(df.format(result)));
to.setText(strResult);
我已经阅读了很多关于如何对数字进行舍入的文章,无论是浮点数还是双精度数以显示,例如,只有两位小数,当你使用已经定义的变量时它看起来很容易,但在我的情况下,所有数字都是通过 InputEditText 输入的,我不知道应该把小数限制放在哪里,所以,例如,显示“2543.789906”,它显示“2534.78”
**My code:**
package com.example.converfuel;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class Timeextends MainActivity {
private Spinner spinner1, spinner2;
private Button btnSubmit;
private EditText from;
private TextView to;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_masa);
btnSubmit = (Button) findViewById(R.id.btnSubmit);
from = (EditText) findViewById(R.id.InputEditText);
to = (TextView) findViewById(R.id.OutputTextView);
spinner1 = (Spinner) findViewById(R.id.spinner1);
List<String> list1 = new ArrayList<String>();
list1.add("Nanosecond");
list1.add("Microsecond");
list1.add("Milisecond");
list1.add("Second");
list1.add("Minute");
list1.add("Hour");
list1.add("Day");
list1.add("Week");
list1.add("Month");
list1.add("Year");
list1.add("Decade");
list1.add("Century");
ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list1);
dataAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter1);
spinner2 = (Spinner) findViewById(R.id.spinner2);
List<String> list2 = new ArrayList<String>();
list2.add("Nanosecond");
list2.add("Microsecond");
list2.add("Milisecond");
list2.add("Second");
list2.add("Minute");
list2.add("Hour");
list2.add("Day");
list2.add("Week");
list2.add("Month");
list2.add("Year");
list2.add("Decade");
list2.add("Century");
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list2);
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter2);
}
public void onClick (View v){
int index1 = spinner1.getSelectedItemPosition();
int index2 = spinner2.getSelectedItemPosition();
float value = Float.parseFloat(from.getText().toString());
//
//
float ratio[] = {3.154e+18f, 3.154e+15f, 3.154e+12f, 3.154e+9f, 5.256e+7f, 876000f, 36500f, 5214f, 1200f, 100f, 10f, 1.0f};
float result = value / ratio[index1] * ratio[index2];
to.setText(result + "");
}
}
感谢您的帮助。
试试这个方法
DecimalFormat df = new DecimalFormat("#.##");
String strResult = String.valueOf(Double.valueOf(df.format(result)));
to.setText(strResult);