How to avoid EXP Notation in Java Android Studio

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