Java处理科学计数法数字方式

 更新时间:2024年07月04日 16:54:00   作者:又夏天  
这篇文章主要介绍了Java处理科学计数法数字方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java处理科学计数法数字

Java中可以使用BigDecimal类来处理科学计数法表示的数字,并将其转换为不使用科学计数法的数字。

具体步骤如下:

1.使用BigDecimal类的构造函数

将科学计数法表示的数字转换为BigDecimal对象。

例如,将科学计数法表示的数字"1.23E+5"转换为BigDecimal对象,可以使用以下代码:

BigDecimal bd = new BigDecimal("1.23E+5");

2.使用BigDecimal类的toPlainString()方法

将BigDecimal对象转换为不使用科学计数法的字符串。

例如,将上面的BigDecimal对象转换为不使用科学计数法的字符串,可以使用以下代码:

String str = bd.toPlainString();

3.将字符串转换为需要的数字类型

例如:

将上面的字符串转换为double类型的数字,可以使用以下代码:

double num = Double.parseDouble(str);

完整的代码示例如下:

String sciNum = "1.23E+5";
BigDecimal bd = new BigDecimal(sciNum);
String plainStr = bd.toPlainString();
double num = Double.parseDouble(plainStr);
System.out.println(num);

输出结果为:

123000.0

java科学计数法表示数值

Background

  • 大多数计算器及计算机程序用科学记数法显示非常大和非常小的结果;
  • 但很多时候,我们需要做一个统一,要么全部以科学计数法输出,要么就全部显示为普通计数。
  • 注意:这里对大于等于1的数据做了特殊处理,为了保证输出的结果展示形式是统一的。

  • Const.java
package com.yunlu.groundwater.constants;
import com.yunlu.groundwater.gwParameters.entities.*;
import java.util.HashMap;
import java.util.Map;
public class Const {

    // tpl
    public static final String TPL_E1 = "%s+%s";

    // fmt
    public static final String FMT_DOUBLE = "0.00E00";
}
/**
     * @param val 数值
     * @return 返回科学计数法字符串
     */
    public static String scientificNotationString(Double val) {
        String res = new DecimalFormat(Const.FMT_DOUBLE).format(val);
        if (val >= 1) {
            int length = res.length();
            String prefix = res.substring(0, length-2);
            String suffix = res.substring(length-2, length);
            res = String.format(Const.TPL_E1, prefix, suffix);
        }
        return res;
    }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringCloudConfig之client端报错Could not resolve placeholder问题

    SpringCloudConfig之client端报错Could not resolve placeholder问

    这篇文章主要介绍了SpringCloudConfig之client端报错Could not resolve placeholder ‘from‘ in value “${from}“问题及解决方案,具有很好的参考价值,希望对大家有所帮助
    2022-12-12
  • Java 类与对象超基础讲解

    Java 类与对象超基础讲解

    类(class)和对象(object)是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型
    2022-03-03
  • IDEA 当前在线人数和历史访问量的示例代码

    IDEA 当前在线人数和历史访问量的示例代码

    这篇文章主要介绍了IDEA 当前在线人数和历史访问量的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java实现创建Zip压缩包并写入文件

    Java实现创建Zip压缩包并写入文件

    这篇文章主要为大家详细介绍了Java实现创建Zip压缩包并写入文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 基于Java实现马踏棋盘游戏算法

    基于Java实现马踏棋盘游戏算法

    这篇文章主要为大家详细介绍了基于Java实现马踏棋盘游戏算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • SpringBoot缓存方法返回值的方法详解

    SpringBoot缓存方法返回值的方法详解

    如何缓存方法的返回值?应该会有很多的办法,这篇文章主要为大家介绍两个比较常见并且比较容易实现的办法:自定义注解和SpringCache,希望对大家有所帮助
    2023-10-10
  • SpringBoot结合Swagger2自动生成api文档的方法

    SpringBoot结合Swagger2自动生成api文档的方法

    这篇文章主要介绍了SpringBoot结合Swagger2自动生成api文档的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Spring使用注解方式实现创建对象

    Spring使用注解方式实现创建对象

    这篇文章主要介绍了Spring使用注解方式实现创建对象,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-02-02
  • Java解除文件占用即Dom4j操作后实现xml关流

    Java解除文件占用即Dom4j操作后实现xml关流

    这篇文章主要介绍了Java解除文件占用即Dom4j操作后实现xml关流,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • springboot vue测试平台接口定义及发送请求功能实现

    springboot vue测试平台接口定义及发送请求功能实现

    这篇文章主要为大家介绍了springboot+vue测试平台接口定义及发送请求功能实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论