java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java处理科学计数法数字

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

作者:又夏天

这篇文章主要介绍了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

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

总结

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

您可能感兴趣的文章:
阅读全文