科学计数法转发成浮点数表示

private Double scientDouble;

    public Double getScientDouble() {
        return scientDouble;
    }

    public void setScientDouble(Double scientDouble) {
        this.scientDouble = scientDouble;
    }

    /**
     * @description:给Double类型赋值过大,或者过小时产生科学计数法.
     * 把科学计数法转换成浮点数表示
     * @author:
     * @date: 2019/8/21
     * @param null:
     * @return:
     */
    public static String scientificCountToFloat(Double scientStr){
        System.out.println(scientStr);
        String str[]=scientStr.toString().split("-");
        for (int i = 0; i <str.length ; i++) {
            System.out.println(str[i]);
        }
        NumberFormat nf = NumberFormat.getInstance();
        //设置小数位数,通过算出科学计数法的小数位数,然后设置小数位数
        if (str.length>1){
            nf.setMaximumFractionDigits(Integer.valueOf(str[1]));
        }

        //取消科学计数法
        nf.setGroupingUsed(false);
        return nf.format(scientStr);
    }

 public static void main(String[] args) {
        MathUtil mathUtil=new MathUtil();
        mathUtil.setScientDouble(0.00000000000000000001);
        System.out.println(scientificCountToFloat(mathUtil.getScientDouble()););
    }

原文地址:https://www.cnblogs.com/cyoba/p/11399352.html

时间: 2024-10-02 18:25:04

科学计数法转发成浮点数表示的相关文章

PHP科学计数法转换成数字

/** * 科学计数法转换成数字 * @param $num * @param int $double * @return int */ function sctonum($num, $double = 5){ if (false !== stripos((string)$num, "E")) { $a = explode("e", strtolower((string)$num)); $b=bcmul($a[0], bcpow((string)10, (strin

C# 中科学计数法转成正常值

抓取数据的时候碰到科学技术法,查了一些资料,直接贴代码 /// <summary> /// 数字科学计数法处理 /// </summary> /// <param name="strData"></param> /// <returns></returns> private Decimal ChangeToDecimal(string strData) { Decimal dData = 0.0M; if (str

php基础:查询程序运行时间并且把科学计数法转换成正常数字

$a = microtime(true);echo 'sdfsdfsdf';$b = microtime(true);$c = $b-$a;echo "<br/>";echo $c;//输出为5.0067901611328E-6echo "<br/>"; /*** @param $num   科学计数法字符串  如 2.1E-5*@param int $double 小数点保留位数 默认5位* @return string 输出为字符串型数字

科学计数法转换成正常数值

1.字符串值中包含E等科学计数法,比如12E-2,需要进行转化为普通数值0.12, 2.转化函数如下: private Decimal ChangeDataToD(string strData)        {            Decimal dData = 0.0M;            if (strData.Contains("E"))            {                dData = Convert.ToDecimal(Decimal.Parse

科学计数法 与 普通数字 转换

// 科学计数法   转成   普通数字 BigDecimal bd = new BigDecimal("3.40256010353E14");        String str = bd.toPlainString();        System.out.println(str); // 普通数字    转成   科学计数法 Double d = Double.parseDouble("456846889000");        d = Math.pow(d

double转成string时,不以科学计数法表示

用gson解析json串的时候,经常会自动把我想用string表示的内容转换成double,并且还是科学计数法,这一点也不科学,写个方法,格式化一下. public static String parseString(Object str){ String returnValue = ""; try { returnValue = new BigDecimal(String.valueOf(str)).toString(); if(StringUtils.endsWith(return

php json_decode 后,数字对象转换成了 科学计数法 的解决方案

php json_decode 后,数字对象转换成了 科学计数法 $obj='{"order_id":213477815351175,"buyer":100001169269154}'; $obj=$this->json_decode($obj,TRUE); print_r($obj); 结果: Array ( [order_id] => 2.1347781535118E+14 [buyer] => 1.0000116926915E+14 ) 最后

【原创】大叔经验分享(102)lua cjson数字处理成科学计数法

在处理json时,有一个字段是数字并且位数很长,结果被处理为科学计数法 ...,"tradeId":101200111072902276000243,... 经过json.decode之后取到的tradeId是1.012001110729e+23 尝试各种方法之后只能通过字符串替换解决,利用正则表达式 if not (string.find(str, '"tradeId"') == nil) then str=string.gsub(str, '("tra

科学计数法的值

科学计数法是一种数学专用术语.将一个数表示成 a×10的n次幂的形式,其中1≤|a|<10,n为整数,这种记数方法叫科学计数法.例如920000可以表示为9.2*10^5 现在需要对输入的字符串进行分离,自动识别该科学计数法中的a和幂次,计算其表征的具体数值并输出该值. 例如,对于输入的复数字符串"9.210^5",输出 The actual value for 9.210^5 is 920000 注意: 1.每组测试数据仅包括一个用于科学计数法的字符串. 2.输入字符串保证合法