Java 如何从整数中检索十进制值?

Java 如何从整数中检索十进制值?,java,android,integer,decimal,Java,Android,Integer,Decimal,我试图根据用户输入计算平均值。现在我已经有了基本的工作,但我只得到整数作为结果。我想要像5.5这样的十进制数字 欢迎任何解释 final TextView averageView = findViewById(R.id.averageView); final String averageText = getString(R.string.average); final Button calculateButton = findViewById(R.id.calculateAverageButto

我试图根据用户输入计算平均值。现在我已经有了基本的工作,但我只得到整数作为结果。我想要像5.5这样的十进制数字

欢迎任何解释

final TextView averageView = findViewById(R.id.averageView);
final String averageText = getString(R.string.average);
final Button calculateButton = findViewById(R.id.calculateAverageButton);

calaculateButton.setOnClickListener(new  View.onClickListener() {
     @SupressLint("SetTextI18n")
     public void onClick(View v) { 

int grade[] = {Integer.parseInt(((EditText) findViewById(R.id.grade1)).getText().toString());

int weight[] = {Integer.parseInt(((EditText)  findViewById(R.id.weight1)).getText().toString());

int weightTotal = weight[0];

int sum = grade[0] * weight[0]

int average = sum / weightTotal


averageView.setText(averageText + Integer.toString(average));
编辑:

我已经尝试了一个答案,并为我的问题找到了解决方案

final TextView averageView = findViewById(R.id.averageView);
final String averageText = getString(R.string.average);
final Button calculateButton = findViewById(R.id.calculateAverageButton);

calaculateButton.setOnClickListener(new  View.onClickListener() {
     @SupressLint("SetTextI18n")
     public void onClick(View v) { 

double grade[] = {Double.parseDouble(((EditText) findViewById(R.id.grade1)).getText().toString());

double weight[] = {Double.parseDouble(((EditText)  findViewById(R.id.weight1)).getText().toString());

double weightTotal = weight[0];

double sum = grade[0] * weight[0]

double average = sum / weightTotal


averageView.setText(averageText + " " + Double.toString(average));
如果存在整数,则除法运算符/表示整数除法 在它的两面。如果一侧或两侧有一个浮点数, 那么它意味着浮点除法。整数除法的结果 始终是一个整数。整数除法确定一的次数 整数变成另一个整数。整数除法后的余数为 不管它有多大,它都会掉下来

将变量平均值的类型更改为float,并将总和或权重中的一个类型转换为float:

float average = (float)sum / weightTotal;

同时将
Integer.toString(average)
更改为
Float.toString(average)
您得到的是整数,因为您只使用整数

这是正常的,如果您喜欢将平均值作为小数,则必须将其声明为
Float
Double
而不是
int


请注意,即使使用这种强制转换(Float.parseFloat…),它也不会工作,因为变量平均值只能保存整数。

好的,您可以这样做

final TextView averageView = findViewById(R.id.averageView);
final String averageText = getString(R.string.average);
final Button calculateButton = findViewById(R.id.calculateAverageButton);

calaculateButton.setOnClickListener(new  View.onClickListener() {
 @SupressLint("SetTextI18n")
 public void onClick(View v) { 

int grade = {Integer.parseInt(((EditText) 
findViewById(R.id.grade1)).getText().toString());

int weight = {Integer.parseInt(((EditText)  
findViewById(R.id.weight1)).getText().toString());

double sum = grade * weight

double average = sum / weight


averageView.setText(averageText +" "+ average);

您还应该使用try/catch,同时从edittext获取转换整数的数据。否则您可能会崩溃

您的表达式似乎总是给出整数值。那么为什么需要显示为float呢?我想显示分数的平均值。通常显示为5.5、9.5、7.0。用户输入也可能是这样的。
float x = (float) y / z

text.setText("your avarage is : " + x );