问题描述
我有codeD简单的计算器用java的机器人。我使用双作为我的变量。它给我的结果是用科学计数法后达到一定的小数位数虽然仍有足够的空间为小数。有没有简单的方法,我可以转换的科学正常符号?
我现在可以执行+, - ,*和/与每个按钮。输入两个数字来计算每一个中的EditText。我的输出结果我到另一个文本框。
例如:
如果我乘25由1'000'000我得到2.5E7我想获得25'000'000结果。
我的code以下样品:
MainActivity:
包com.example.rechner;
进口android.app.Activity;
进口android.os.Bundle;
进口android.view.Menu;
进口android.view.View;
进口android.widget.EditText;
公共类MainActivity延伸活动{
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
setRequestedOrientation(1);
}
@覆盖
公共布尔onCreateOptionsMenu(功能菜单){
//充气菜单;这增加了项目操作栏,如果它是present。
。getMenuInflater()膨胀(R.menu.main,菜单);
返回true;
}
公共无效ButtonClickDurch(查看视图){
双zahl1;
双zahl2;
双Ergebnis;
EditText上Feld1 =(EditText上)findViewById(R.id.zahl1);
EditText上Feld2 =(EditText上)findViewById(R.id.zahl2);
EditText上FeldErgebnis =(EditText上)findViewById(R.id.Ergebnis);
如果(Feld1.getText()的toString()长度()== 0){
返回;
}
如果(Feld2.getText()的toString()长度()== 0){
返回;
}
zahl1 = Double.parseDouble(Feld1.getText()的toString());
zahl2 = Double.parseDouble(Feld2.getText()的toString());
Ergebnis = zahl1 / zahl2;
FeldErgebnis.setText(将String.valueOf(Ergebnis));
}
公共无效ButtonClickPlus(查看视图){
双zahl1;
双zahl2;
双Ergebnis;
EditText上Feld1 =(EditText上)findViewById(R.id.zahl1);
EditText上Feld2 =(EditText上)findViewById(R.id.zahl2);
EditText上FeldErgebnis =(EditText上)findViewById(R.id.Ergebnis);
如果(Feld1.getText()的toString()长度()== 0){
返回;
}
如果(Feld2.getText()的toString()长度()== 0){
返回;
}
zahl1 = Double.parseDouble(Feld1.getText()的toString());
zahl2 = Double.parseDouble(Feld2.getText()的toString());
Ergebnis = zahl1 + zahl2;
FeldErgebnis.setText(将String.valueOf(Ergebnis));
}
公共无效ButtonClickMinus(查看视图){
双zahl1;
双zahl2;
双Ergebnis;
EditText上Feld1 =(EditText上)findViewById(R.id.zahl1);
EditText上Feld2 =(EditText上)findViewById(R.id.zahl2);
EditText上FeldErgebnis =(EditText上)findViewById(R.id.Ergebnis);
如果(Feld1.getText()的toString()长度()== 0){
返回;
}
如果(Feld2.getText()的toString()长度()== 0){
返回;
}
zahl1 = Double.parseDouble(Feld1.getText()的toString());
zahl2 = Double.parseDouble(Feld2.getText()的toString());
Ergebnis = zahl1 - zahl2;
FeldErgebnis.setText(将String.valueOf(Ergebnis));
}
公共无效ButtonClickMal(查看视图){
双zahl1;
双zahl2;
双Ergebnis;
EditText上Feld1 =(EditText上)findViewById(R.id.zahl1);
EditText上Feld2 =(EditText上)findViewById(R.id.zahl2);
EditText上FeldErgebnis =(EditText上)findViewById(R.id.Ergebnis);
如果(Feld1.getText()的toString()长度()== 0){
返回;
}
如果(Feld2.getText()的toString()长度()== 0){
返回;
}
zahl1 = Double.parseDouble(Feld1.getText()的toString());
zahl2 = Double.parseDouble(Feld2.getText()的toString());
Ergebnis = zahl1 * zahl2;
FeldErgebnis.setText(将String.valueOf(Ergebnis));
}
}
我activity_main.xml
< RelativeLayout的的xmlns:机器人=http://schemas.android.com/apk/res/android
的xmlns:工具=http://schemas.android.com/tools
机器人:layout_width =match_parent
机器人:layout_height =match_parent
机器人:paddingBottom会=@扪/ activity_vertical_margin
机器人:以下属性来=@扪/ activity_horizontal_margin
机器人:paddingRight =@扪/ activity_horizontal_margin
机器人:paddingTop =@扪/ activity_vertical_margin
工具:上下文=。MainActivity
机器人:后台=#ABE033>
<的TextView
机器人:ID =@ + ID / textView1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentLeft =真
机器人:layout_alignParentTop =真
机器人:文本=@字符串/ Zahl1
机器人:textAppearance =:/>中的Android ATTR / textAppearanceLarge?
<的EditText
机器人:ID =@ + ID / zahl1
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignLeft =@ + ID / textView1
机器人:layout_below =@ + ID / textView1
机器人:EMS =10
机器人:inputType =numberDecimal/>
<的TextView
机器人:ID =@ + ID / textView2
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignLeft =@ + ID / zahl1
机器人:layout_below =@ + ID / zahl1
机器人:文本=@字符串/ Zahl2
机器人:textAppearance =:/>中的Android ATTR / textAppearanceLarge?
<的EditText
机器人:ID =@ + ID / zahl2
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignLeft =@ + ID / textView2
机器人:layout_below =@ + ID / textView2
机器人:layout_marginTop =11DP
机器人:EMS =10
机器人:inputType =numberDecimal/>
<的EditText
机器人:ID =@ + ID / Ergebnis
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignLeft =@ + ID / zahl2
机器人:layout_below =@ + ID / zahl2
机器人:inputType =numberDecimal
机器人:EMS =10/>
<按钮
机器人:ID =@ + ID / buttonplus
机器人:layout_width =50dp
机器人:layout_height =50dp
机器人:的onClick =ButtonClickPlus
机器人:文本=@字符串/加
机器人:layout_alignLeft =@ + ID / Ergebnis
机器人:layout_centerVertical =真/>
<按钮
机器人:ID =@ + ID / buttondurch
机器人:layout_width =50dp
机器人:layout_height =50dp
机器人:layout_marginRight =12dp
机器人:的onClick =ButtonClickDurch
机器人:文本=@字符串/第三人以
机器人:layout_alignBaseline =@ + ID / buttonmal
机器人:layout_alignBottom =@ + ID / buttonmal
机器人:layout_alignRight =@ + ID / Ergebnis/>
<按钮
机器人:ID =@ + ID / buttonmal
机器人:layout_width =50dp
机器人:layout_height =50dp
机器人:layout_alignBaseline =@ + ID / buttonminus
机器人:layout_alignBottom =@ + ID / buttonminus
机器人:layout_toLeftOf =@ + ID / buttondurch
机器人:的onClick =ButtonClickMal
机器人:文本=@字符串/玛/>
<按钮
机器人:ID =@ + ID / buttonminus
机器人:layout_width =50dp
机器人:layout_height =50dp
机器人:layout_alignBaseline =@ + ID / buttonplus
机器人:layout_alignBottom =@ + ID / buttonplus
机器人:layout_toRightOf =@ + ID / buttonplus
机器人:的onClick =ButtonClickMinus
机器人:文本=@字符串/负/>
< / RelativeLayout的>
和我的strings.xml
< XML版本=1.0编码=UTF-8&GT?;
<资源>
<字符串名称=APP_NAME>雷希纳< /串>
<字符串名称=action_settings>设置< /串>
<字符串名称=参考hello world>世界,你好<!/串>
<字符串名称=Zahl2> Zahl 2:< /串>
<字符串名称=第三人以>:< /串>
<字符串名称=Zahl1> Zahl 1:< /串>
<字符串名称=加上&GT + LT; /串>
<字符串名称=减> - < /串>
<字符串名称=玛> *< /串>
< /资源>
如果,例如,你想要的一倍,显示两位小数,你可以使用:
NumberFormat的格式化=新的DecimalFormat(#0.00);
的System.out.println(formatter.format(4.0));
I've coded a simple calculator with java for android. I use double as my variables. The results it gives me are in scientific notation after it reaches a certain number of decimals although there is still is plenty of room for decimals. Is there any easy way I can convert scientific to "normal" notation?
I can now perform +,-,* and / with a button each. Input the two numbers to calculate in a edittext each. I output my result into another textfield.
For example:
If I multiply 25 by 1'000'000 I get 2.5E7I'd like to get 25'000'000 as a result.
My code samples below:
MainActivity:
package com.example.rechner;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void ButtonClickDurch (View view) {
double zahl1;
double zahl2;
double Ergebnis;
EditText Feld1 = (EditText)findViewById(R.id.zahl1);
EditText Feld2 = (EditText)findViewById(R.id.zahl2);
EditText FeldErgebnis = (EditText)findViewById(R.id.Ergebnis);
if (Feld1.getText().toString().length() == 0) {
return;
}
if (Feld2.getText().toString().length() == 0) {
return;
}
zahl1 = Double.parseDouble(Feld1.getText().toString());
zahl2 = Double.parseDouble(Feld2.getText().toString());
Ergebnis = zahl1 / zahl2;
FeldErgebnis.setText(String.valueOf(Ergebnis));
}
public void ButtonClickPlus (View view) {
double zahl1;
double zahl2;
double Ergebnis;
EditText Feld1 = (EditText)findViewById(R.id.zahl1);
EditText Feld2 = (EditText)findViewById(R.id.zahl2);
EditText FeldErgebnis = (EditText)findViewById(R.id.Ergebnis);
if (Feld1.getText().toString().length() == 0) {
return;
}
if (Feld2.getText().toString().length() == 0) {
return;
}
zahl1 = Double.parseDouble(Feld1.getText().toString());
zahl2 = Double.parseDouble(Feld2.getText().toString());
Ergebnis = zahl1 + zahl2;
FeldErgebnis.setText(String.valueOf(Ergebnis));
}
public void ButtonClickMinus (View view) {
double zahl1;
double zahl2;
double Ergebnis;
EditText Feld1 = (EditText)findViewById(R.id.zahl1);
EditText Feld2 = (EditText)findViewById(R.id.zahl2);
EditText FeldErgebnis = (EditText)findViewById(R.id.Ergebnis);
if (Feld1.getText().toString().length() == 0) {
return;
}
if (Feld2.getText().toString().length() == 0) {
return;
}
zahl1 = Double.parseDouble(Feld1.getText().toString());
zahl2 = Double.parseDouble(Feld2.getText().toString());
Ergebnis = zahl1 - zahl2;
FeldErgebnis.setText(String.valueOf(Ergebnis));
}
public void ButtonClickMal (View view) {
double zahl1;
double zahl2;
double Ergebnis;
EditText Feld1 = (EditText)findViewById(R.id.zahl1);
EditText Feld2 = (EditText)findViewById(R.id.zahl2);
EditText FeldErgebnis = (EditText)findViewById(R.id.Ergebnis);
if (Feld1.getText().toString().length() == 0) {
return;
}
if (Feld2.getText().toString().length() == 0) {
return;
}
zahl1 = Double.parseDouble(Feld1.getText().toString());
zahl2 = Double.parseDouble(Feld2.getText().toString());
Ergebnis = zahl1 * zahl2;
FeldErgebnis.setText(String.valueOf(Ergebnis));
}
}
My activity_main.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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="#ABE033" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/Zahl1"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/zahl1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:ems="10"
android:inputType="numberDecimal" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/zahl1"
android:layout_below="@+id/zahl1"
android:text="@string/Zahl2"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/zahl2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:layout_marginTop="11dp"
android:ems="10"
android:inputType="numberDecimal" />
<EditText
android:id="@+id/Ergebnis"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/zahl2"
android:layout_below="@+id/zahl2"
android:inputType="numberDecimal"
android:ems="10" />
<Button
android:id="@+id/buttonplus"
android:layout_width="50dp"
android:layout_height="50dp"
android:onClick="ButtonClickPlus"
android:text="@string/Plus"
android:layout_alignLeft="@+id/Ergebnis"
android:layout_centerVertical="true"/>
<Button
android:id="@+id/buttondurch"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginRight="12dp"
android:onClick="ButtonClickDurch"
android:text="@string/Durch"
android:layout_alignBaseline="@+id/buttonmal"
android:layout_alignBottom="@+id/buttonmal"
android:layout_alignRight="@+id/Ergebnis"/>
<Button
android:id="@+id/buttonmal"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignBaseline="@+id/buttonminus"
android:layout_alignBottom="@+id/buttonminus"
android:layout_toLeftOf="@+id/buttondurch"
android:onClick="ButtonClickMal"
android:text="@string/Mal" />
<Button
android:id="@+id/buttonminus"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignBaseline="@+id/buttonplus"
android:layout_alignBottom="@+id/buttonplus"
android:layout_toRightOf="@+id/buttonplus"
android:onClick="ButtonClickMinus"
android:text="@string/Minus" />
</RelativeLayout>
and my strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Rechner</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="Zahl2">Zahl 2:</string>
<string name="Durch">:</string>
<string name="Zahl1">Zahl 1:</string>
<string name="Plus">+</string>
<string name="Minus">-</string>
<string name="Mal">*</string>
</resources>
If, for example, you want the double to be shown with two decimals, you can use:
NumberFormat formatter = new DecimalFormat("#0.00");
System.out.println(formatter.format(4.0));
这篇关于科学记数法的Android的Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!