Saturday, August 13, 2022

[FIXED] How to retrieve decimal value from Integer?

Issue

I'm trying to calculate the average based on user input. Now I've got the basics working, but I am only getting whole numbers as result. I want decimal numbers like 5.5

Any explanation is welcome!

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));

EDIT:

I have experimented with a answer and got a solution for my problem.

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));

Solution

Ok You can do it like this

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);


Answered By - Tejas Soni
Answer Checked By - Timothy Miller (PHPFixing Admin)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.