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(returnValue, ".0")) {
                returnValue = StringUtils.removeEnd(returnValue, ".0");
            }
        } catch (Exception e) {
            returnValue = ObjectUtils.toString(str);
        }
        return returnValue;
    }

这个方法分两种情况,如果是数字,就转成不以科学计数法的数字,并且如果给加了小数点,就把小数点去掉;如果是字符串,就原封不动的转成字符串。搞定!

时间: 2024-12-15 07:09:08

double转成string时,不以科学计数法表示的相关文章

sqlserver中float转varchar时不显示科学计数法

MSSQL中 float转换为varchar 变成科学计数法解决方案 在系统初始化的时候,因为有同事,没有在数值型的数据前面加上 单引号,导致进入数据库后都变成float型我们需要做以下转换就能将数据变为 varchar类型 declare @a float //定义一个float变量set @a =13824658956 //赋值float变量select @a as a //显示变量select convert(varchar(25),@a) as a //按字符串显示select conv

Excel科学计数法转换为文本(转载)

excel中的科学计数法有时候会带来意想不到的麻烦.特别是从网页上复制过来的数据粘贴到自己的表中时变成了科学计数法的形式,处理起来很麻烦.今天看到了一个简单的方法,将数据转换成文本,而且末位不会丢失. 方法一:选定数据区域,点击“数据→分列→下一步→下一步→文本→完成”.(简单好用) 方法二:1.先把excel表格设置为文本格式.         2.复制过来粘贴时,右键选项"选择性粘贴"-->文本:         3.如果是 Excel2003,粘贴过来时,单元格右下有个选项

c++中double转换成string型(浮点数的格式化)

在日常编程中--包括对话框.关系数据库.金融程序.SMS程序及一切处理数据文件的程序,需要控制小数点后的小数位的情况非常普遍,本文中将要讲 解如何用简单的方法来控制小数位,另外,还要揭开字符串及数据精度的一点点小秘密. 问题的引出 如有一个函数,其可接受一个long double参数,并将参数转换为字符串,结果字符串应保留两位小数,例如,浮点值123.45678应该生成“123.45”这样的字符串.表面上看来 这是一个意义不大的编程问题,然而,如果真要在实际中派上用场,函数应设计为具有一定弹性,

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

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

private Double scientDouble; public Double getScientDouble() { return scientDouble; } public void setScientDouble(Double scientDouble) { this.scientDouble = scientDouble; } /** * @description:给Double类型赋值过大,或者过小时产生科学计数法. * 把科学计数法转换成浮点数表示 * @author: *

将258.369 double值转为内存表示(科学计数法)

前言 庖丁解牛 - <<庄子>> 庖丁为文惠君解牛,手之所触, 肩之所倚, 足之所履, 膝之所踦, 砉然向然, 奏刀騞然, 莫不中音, 合于<桑林>之舞, 乃中<经首>之会. 文惠君曰:"嘻, 善哉! 技盍至此乎?" 庖丁释刀对曰:"臣之所好者, 道也, 进乎技矣.始臣之解牛之时, 所见无非牛者.三年之后, 未尝见全牛也.方今之时, 臣以神遇而不以目视, 官知止而神欲行.依乎天理, 批大郤, 导大窾, 因其固然, 技经肯綮之未尝

用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)

做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel了,下决心一定要找到解决办法 自己在excel里测试过,较长的数字,都会自动变成科学计数法,除非我们把单元格格式设置成“文本型” 哈哈,似乎找到了思路:用poi先把单元格设置成“文本型”就可以了把. 从文档里找到了这个方法HSSFCell.setCellType(int type),怎么看这个方法都

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 输出为字符串型数字

如何使java中double类型不以科学计数法表示

在java中,把一个double或者BigDecimal的小数转换为字符串时,经常会用科学计数法表示,而我们一般不想使用科学计数法,可以通过:DecimalFormat a = new DecimalFormat("#,##0.00000000");        System.out.println(a.format(11111111.0000001000000001));的方式来格式化输出字符串. 对于BigDecimal的小数,如果制定精度<=6, 则可以放心的使用其toS