Mr.FAL :
everybody.
I am making a length converter in Java, but the problem is that when making conversions, for example from inches to miles, it makes the conversion with exponential values, that is, if you convert 12 inches to miles (for example) they appear as 1.8939379E-4 instead of 0.000189394. How can I remove the exponential values?
Here are the codes for the MainActivity and XML class
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 java.util.ArrayList;
import java.util.List;
public class Longitud extends 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_longitud);
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("Pulgadas");
list1.add("Pies");
list1.add("Yardas");
list1.add("Millas");
list1.add("Milimetros");
list1.add("Centimetros");
list1.add("Metros");
list1.add("Kilómetros");
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("Pulgadas");
list2.add("Pies");
list2.add("Yardas");
list2.add("Millas");
list2.add("Milimetros");
list2.add("Centimetros");
list2.add("Metros");
list2.add("Kilómetros");
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());
/* you have 8 units to convert from and to.
* that means 8*8 = 64 cases!
* to minimize work we convert from any selected unit to Centimeter
* then we convert from Centimeter to the desired unit.
*/
// ratios from google convertor
float ratio[] = {0.39370f, 0.0328084f, 0.0109361f, 6.21371e-6f, 10.0f, 1.0f, 0.01f, 1.0e-5f};
float result = value / ratio[index1] * ratio[index2];
to.setText(result + "");
}
}
XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#54A0DD"
android:orientation="vertical"
tools:context=".MainActivity">
<Spinner
android:id="@+id/spinner1"
android:layout_width="149dp"
android:layout_height="wrap_content"
android:layout_marginLeft="60sp"
android:layout_marginTop="100sp"
android:layout_weight="1" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="152dp"
android:layout_height="wrap_content"
android:layout_marginLeft="60sp"
android:layout_marginTop="250sp"
android:layout_weight="1" />
<EditText
android:id="@+id/InputEditText"
android:layout_width="293dp"
android:layout_height="60dp"
android:layout_marginLeft="60sp"
android:layout_marginTop="150sp"
android:layout_marginRight="60sp"
android:layout_weight="1"
android:ems="10"
android:inputType="number"
android:textColor="#FFFFFF"
android:textSize="20sp">
<requestFocus />
</EditText>
<TextView
android:id="@+id/OutputTextView"
android:layout_width="327dp"
android:layout_height="wrap_content"
android:layout_marginLeft="60sp"
android:layout_marginTop="300sp"
android:layout_marginRight="80sp"
android:layout_weight="1"
android:text=""
android:textColor="#FFFFFF"
android:textSize="38sp" />
<Button
android:id="@+id/btnSubmit"
android:layout_width="134dp"
android:layout_height="wrap_content"
android:layout_marginLeft="140sp"
android:layout_marginTop="500sp"
android:layout_marginRight="60sp"
android:background="@drawable/rounded_button"
android:onClick="onClick"
android:text="Convertir"
android:textColor="#FFFFFF"
tools:ignore="OnClick" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60sp"
android:layout_marginTop="70sp"
android:text="Selecciona las unidades a convertir."
android:textColor="#FFFFFF"
android:textSize="16sp" />
</RelativeLayout>
Thanks for your help and time!
A_Singh7 :
Just do
Double.parseDouble(1.8939379E-4);
It will give you
0.000189394
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=370768&siteId=1