всех.
Я делаю преобразователь длины в Java, но проблема в том, что при преобразованиях, например, из дюймов в мили, он выполняет преобразование с экспоненциальными значениями, то есть, если Вы конвертируете 12 дюймов в мили (например), они отображаются как 1.8939379E-4 вместо 0.000189394. Как я могу удалить экспоненциальные значения?
Вот коды для MainActivity и 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>
Спасибо за вашу помощь и время!