我已经用Java为Android编写了一个简单的计算器.我将double用作变量.它达到一定的小数位数后,给我的结果以科学计数法表示,尽管小数位数仍有很大的空间.有什么简单的方法可以将科学符号转换为“正常”符号?

我现在可以分别用一个按钮执行-,*和/.输入两个数字以分别在编辑文本中进行计算.我将结果输出到另一个文本字段中.

例如:

如果我将25乘以1’000’000,我得到2.5E7

结果我想得到25’000’000.

我的代码示例如下:

主要活动:

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

}

}

我的activity_main.xml

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" >

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" />

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" />

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" />

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" />

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" />

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"/>

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"/>

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" />

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" />

和我的strings.xml

Rechner

Settings

Hello world!

Zahl 2:

:

Zahl 1:

+

-

*

解决方法:

例如,如果您希望双精度显示两个小数,则可以使用:

NumberFormat formatter = new DecimalFormat("#0.00");

System.out.println(formatter.format(4.0));

标签:calculator,android,java

来源: https://codeday.me/bug/20191011/1894731.html

java 科学计数法位数_科学记数法android java相关推荐

  1. Java 科学计数法

    目录 Java 科学计数法 1 科学计数法的概念 1.1 有效数字 1.2 E记号 2 Java中的科学计数法 2.1 NumberFormat 2.2 DecimalFormat 2.3 BigDe ...

  2. JAVA科学计数法,金额数字,转换为中文大写字

    网上看到别人的代码,觉得很好,收藏下来 网上其他人的代码大多是只能转换整数最多13位,一般转换方案都是下面两种(第一种看完都不想再当码农了,第二种看似挺好, 但是处理起来截取字符串麻烦,容易因规则太复 ...

  3. java科学计数法转十进制_Linux下科学计数法(e)转化为数字的方法

    科学计数法使用e标识数值,将科学计算学转化为数字的思路:按e右边的数字移动小数点位数.e右边的数字如果是负数,则向左移动小数点.示例如下: 1.2345678e2 = 123.45678 1.2345 ...

  4. python科学计数法转换_对比Python学习Go 基本数据结构

    公众号文章不方便更新,可关注底部「阅读原文」博客,文章随时更新. 本篇是「对比 Python 学习 Go」[1] 系列的第三篇,本篇文章我们来看下 Go 的基本数据结构.Go 的环境搭建,可参考之前的 ...

  5. csv java 科学计数法_Java入门笔记1/0(输入与输出)

    0.输出: (0).System.out.println() 表示输出后换行 (1).System.out.print() 表示输出后不换行 1.格式化输出: (0).计算机有时输出的结果不一定被人很 ...

  6. java科学计数法问题_java 解决科学计数法问题

    问题:当java从excel获取数据后,会出现科学计数法,比如0.0004变成4.0E-4,5000变成5E+3问题. 解决:1:当是5E+3问题 这个很好解决: 1).判断是否是科学计数法 Stri ...

  7. java科学计数法转换为数字型字符串

    很多童鞋遇到过将科学技术发转换为数字型字符串的问题,一般通过BigDecimal来转换,但这样变量为科学计数法的可以正常转换,但变量为正常类型就会出现问题(会出现很长的数值),为保证科学计数法和普通数 ...

  8. python科学计数法转换_柳小白Python学习笔记35 Excel之科学计数法类型转换及数据选取1...

    昨天学习了使用pandas模块如何查看Excel工作表"wz"的基本信息.今天学习,转换数字科学计数法格式及提取需要处理的数据,接下来就进入今天的学习吧. 一.转换科学计数法格式 ...

  9. 怎么转换科学计数法字符串_【编码技巧】python字符串格式化教你正确打印

    点击上方蓝字关注我吧! %运算符用来格式化字符串.在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要一一对应.如果只有一个%?,括号可以省略.用% ...

最新文章

  1. python扫描端口脚本_Python端口扫描简单程序
  2. 六级单词pdf_雅思提高词汇量是背单词还是大量刷题
  3. aspnet core 2.1中使用jwt从原理到精通二
  4. python 异步下载图片_python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解...
  5. 【项目相关】MVC中将WebUploader进行封装
  6. linux用户群组实验总结,linux基础概念和个人笔记总结(2)——账号和权限管理实验验证...
  7. 谷歌发布基于浏览器的 Spectre 攻击的 PoC exploit
  8. python:只想在opencv中显示红色通道?
  9. 论文用impact、effect、influence 什么区别
  10. 我做的第一个PHP网站
  11. 频谱分析仪原理结构框图
  12. (亲测可用)基于matlab的用自写函数来实现图像的灰度处理sobel canny算子边缘检测
  13. 使用 patchrom 移植 MIUI
  14. 【VUE】微商城(七)----实现分类页面功能
  15. 【深度学习】各种卷积的理解笔记(2D,3D,1x1,可分离卷积)
  16. Transformer课程 业务对话机器人Rasa 3.x 运行命令学习
  17. 企业网络营销信息源类别及传递渠道调查
  18. 国家职业分类大典公示 心理咨询行业迎来重大变革
  19. 用iMindMap4步搞定项目管理
  20. 将SOP进行到底 (转载)

热门文章

  1. Arduino和C51开发LCD1602显示屏
  2. Android ROM开发(一)——Windows下Cygwin和Android_Kitchen厨房的安装
  3. yum 代理(系统代理对 yum 不生效)
  4. 化工行业危化品实时监控/厂区监控解决方案:EasyGBS如何保障危化品安全生产?
  5. Web前端面试题整合,持续更新【可以收藏】
  6. 如何给笔记本安装固态硬盘
  7. C++ 定义学生信息结构体,按照学号顺序排序
  8. linux ksh 用户名,学习Linux中ksh的用法
  9. rust进水器怎么用_净水器的使用方法和注意事项
  10. IC圈的世界杯 | 论芯片设计的胜利十一人