科学记数法 android java

2024-03-31

我用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

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

和我的 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>

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

NumberFormat formatter = new DecimalFormat("#0.00");     
System.out.println(formatter.format(4.0));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

科学记数法 android java 的相关文章

  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 如何使用 IF 检查 TextView 可见性

    我有一个 onCheckedChangeListener 来根据选择的单选按钮显示文本视图 我有 1 个疑问和 1 个难题 想知道是否有人可以帮助我 问题 您能否将单选组默认检查值设置为 否 单选按钮 以便一开始就不会检查任何内容 问题 如
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 从 127.0.0.1 到 2130706433,然后再返回

    使用标准 Java 库 从 IPV4 地址的点分字符串表示形式获取的最快方法是什么 127 0 0 1 到等效的整数表示 2130706433 相应地 反转所述操作的最快方法是什么 从整数开始2130706433到字符串表示形式 127 0
  • 尝试在 ubuntu 中编译 android 内核时出错

    我正在尝试从源代码编译 Android 内核 并且我已经下载了所有正确的软件包来执行此操作 但由于某种原因我收到此错误 arm linux androideabi gcc error unrecognized command line op
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • Android:膨胀布局时出现 StackOverFlowError 和 InvokingTargetException

    首先 对不起我的英语 我在膨胀布局时有一个问题 我有一个自定义视图 从 LinearLayout 扩展而来 称为按钮帮助 我在名为的布局上使用该视图加载活动 我的以下代码在所有设备和模拟器上都能完美运行 但具有 QVGA 屏幕 例如 Sam
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 强制 Listview 不重复使用视图(复选框)

    我做了一个定制Listview 没有覆盖getView 方法 Listview 中的每个项目都具有以下布局 联系布局 xml

随机推荐

  • 有没有好的、简单的用于进程间调用的 RPC 库? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使 EditText 的父级可点击?

    假设我有这个粉红色的盒子 它包括LinearLayout和它的孩子们 TextView作为字段名称和EditText EditText被故意禁用 我想要的是 用户可以在粉红色的方框上单击任何用户想要的位置 顺便说一句 请忽略任何您觉得奇怪的
  • 是否可以从具有跨源数据的元素中捕获?

    我在 webRTC 文档中找到了这个简单的脚本 我尝试运行它 但似乎我遗漏了一些东西 const leftVideo document getElementById leftVideo const rightVideo document g
  • JIT - 将 Spacetree 保存为图像

    我正在使用 JavaScript InfoVis Toolkit http thejit org 并尝试将输出的 Spacetree 保存到图像中 空间树被输出到画布上 这个问题实在是让我很沮丧 我努力了 在新窗口中打开画布 在新窗口中打开
  • Windows 上 Haskell 中的 Unicode 控制台 I/O

    在 Windows 下的 Haskell 中让控制台 I O 与 Unicode 字符一起工作似乎相当困难 这是一个悲惨的故事 初步的 在考虑在 Windows 下的控制台中执行 Unicode I O 之前 您需要确保您使用的控制台字体可
  • 打开htaccess密码保护页面没有提示

    我在网站上有一个目录 该目录通过 htaccess 进行密码保护 我希望能够通过我的应用程序打开此网页 而无需用户输入密码 而是以编程方式打开此网页 例如 有没有办法可以将登录信息嵌入到 URL 中 例如http www mypage co
  • 如何在textarea中使用keydown事件?

    我不太习惯使用 javascript 但我已经厌倦了在工作中手动重复尝试 当我在论坛中写作时 我需要一个快速的简短命令 例如 Ctrl Alt z 来将一些文本插入到文本区域对象中 我已经编写了一个在文本光标 insertAtCursor
  • 在 XCode 中向表视图 (UITableView) 添加单元格

    我是 X Code 新手 刚刚开始开发我的第一个应用程序 我正在使用故事板 在导航控制器场景中 我添加了一个带有两个单元的 MasterViewController 这导致了两个 DetailViewController Detail1 和
  • 什么时候会使用没有 Arc 的互斥体?

    Rust 中一个极其常见的模式是Arc
  • 在 UITableViewCell 中进入编辑模式时隐藏 UITableViewCells(类似于联系人应用程序)

    有谁知道如何在进入编辑模式时隐藏分组 UITableView 中的多个单元格 我希望当退出编辑模式时 行能够以动画效果隐藏 如联系人应用程序中所示 如您所知 在联系人编辑模式下 行数比切换回正常模式时要多 我想知道如何顺利 切换 请注意 我
  • 结合多种功能

    我正在尝试制作一个 DNA 转录程序 但我的做法遇到了麻烦 我确信有一种更简单的方法可以做到这一点 但这是我想到的第一件事 但事实并非如此按照我想要的方式工作 dnaToRna Char gt Char dnaToRna dnaToRna
  • 使用 IntelliJ IDEA for JavaScript 的最佳插件和项目? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在使用 MEAN 堆栈构建一个 Web 应用程序 MongoDB http www mongodb com Express htt
  • 处理子资源完整性检查中的加载错误

    我正在实施子资源完整性检查 我想实现一个回退 以便 1 浏览器从我的 CDN 加载 执行完整性检查并继续 或者 2 如果完整性检查失败 嵌入式脚本将启动并从我的应用程序检索所需的脚本服务器 我控制的资源 我有一个简单的 javascript
  • 列出特定 AMI 的所有可能的实例类型?

    我知道以前曾有人问过这个问题 但我尚未找到用于获取给定 Amazon AMI 的可能实例类型列表的解决方法或解决方案 我正在使用 NET SDK 有没有人能够找到一种方法来做到这一点 这不可能 AMI 只是磁盘的映像 AWS 通常 可以检测
  • C#,“未将对象引用设置为对象的实例。”错误

    我有这个代码 namespace YellowBox public partial class Form1 Form private string sid FileTransferManager fm new FileTransferMan
  • UpsetR 更改图表中的集名称标签

    我正在尝试将 UpsetR 图中的集合名称标签 使用 Upset 函数 更改为多个单词的字符串 我希望将集合标签显示为 A 描述 B 描述 C 描述 而不是 A B C 作为集合标签 我不想在单词之间使用句号或下划线 test lt ups
  • 有没有办法在 PHP4 中模拟 PHP5 的 __call() 魔术方法?

    PHP5有一个 神奇的方法 call 可以在调用未定义方法时调用的任何类上定义 它大致相当于 Ruby 的method missing或者 Perl 的AUTOLOAD 在旧版本的 PHP 中可以做这样的事情吗 我缺少的最重要的一点是 ca
  • 修复未加引号的 PHP 数组键

    或者更确切地说 修复用作 PHP 数组键的未加引号的字符串 但这对于标题来说有点长 我继承了一个相当大的代码库 其中数组的编写方式如下 array id 0 array value test 虽然这段代码实际上有效 但它抛出了很多Use o
  • 计算 3D(或 n 维)质心的最佳方法是什么?

    作为工作项目的一部分 我必须计算 3D 空间中一组点的质心 现在我正在以一种看似简单但天真的方式来做这件事 通过取每组点的平均值 如下所示 centroid average x average y average z where x y a
  • 科学记数法 android java

    我用java为android编写了一个简单的计算器 我使用 double 作为变量 它给我的结果在达到一定数量的小数后以科学计数法表示 尽管仍然有足够的小数空间 有没有什么简单的方法可以将科学符号转换为 正常 符号 我现在可以分别用一个按钮