excel科学计数法表示-java实现

122 阅读1分钟

Excel默认对超出 11位的数字以科学计数法表示

需要注意的是一般的科学表达式是

1.8E12 1.8E-12

而在Excel中的科学表达式是

1.8E+12 1.8E-12

我写的科学计数法的正则表达式是

(-?\d+.?\d*)[Ee]{1}[+-]?[0-9]*


核心代码:

package com.xiuqi.zgcc.util;

import org.apache.commons.lang3.StringUtils;

import java.text.DecimalFormat;

/**
 * Decimal数值处理工具类
 *
 * @Author liuxin
 * @Date 2020/8/12
 */
public class XQDecimalUtils {

    /**
     *科学计数法解析
     * Excel文件上传数值时,【Excel默认对超出 11 位的数字以科学计数法表示】
     * Excel科学计数法格式【1.8E+12 或 1.8E-12】
     * 标准科学计数法格式【1.8E12 或 1.8E-12】
     *
     * @Author liuxin
     * @Date 2020/8/12
     */
    public static String read4ScientificCounting(DecimalFormat decimalFormat, String number) {
        String pattern = "^\\-?\\d+\\.\\d+[Ee][+-]?\\d+$";
        if (StringUtils.isNotEmpty(number) && number.matches(pattern)) {
            return decimalFormat.format(Double.parseDouble(number)).trim();
        }
        return number;
    }


}