java代码怎么把科学计数法转换为具体数字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码怎么把科学计数法转换为具体数字相关的知识,希望对你有一定的参考价值。
这是个csv文件 ,用excel打开后 ,默认显示的科学计数法是可以看到有对应的具体数字的,比如这个1.03219E+14是对应的数字是103218689310925 ,请问现在怎么通过java代码实现这个科学计数法转换为具体的数字呢
首先,需要将科学计数法转换成一下:例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然后转换成字符串:
String str = bd.toPlainString();
如果这个数字的长度是在int的范围内的话,是可以转换成int类型:
int a = Integer.parsInt(str);
如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了! 参考技术A 首先,需要将科学计数法转换成一下:
例如:
BigDecimal bd = new BigDecimal("3.40256010353E11");
然后转换成字符串:
String str = bd.toPlainString();
如果这个数字的长度是在int的范围内的话,是可以转换成int类型:
int a = Integer.parsInt(str);
如果这个数字的长度不是在Int范围内的话,得到的就不是你想要的数字了!追问
不对 ,你试试抓换1.03219E+14 ,得出的数字不是我说的真是值
参考技术B public static void main(String[] args)BigDecimal bd = new BigDecimal("1.03219E+14");
System.out.println(bd.toPlainString());
不过会略去之后的数字追问
这明显都丢失了精度了,后面全是0了
当然了,你科学技术法中的数字都没有保留这个信息,程序怎么知道你原来的数字是什么呢?
这种转换有位数丢失,中学的时候就学过了。
我是无语了 ,你能不能仔细看我的提问啊 ,不是说了吗,在excel里是可以看到实际的数值的,现在就是要用程序读出这个实际的值
追答我是无语了,你能不能仔细动下脑子啊,excel的值不只存了你看到的那个。
举个例子吧,你看有些单元格展示的是某个普通的词,但是却是超链接,这说明这个单元格实际上也存了超链接的地址。
言归正传,你要取原来那个值,你就不能简单的取它展示的值,要把它藏起来的那个值也取出来。应该有API的
凡是科学计数法显示的数据都会带有E,用contains()判断
判断之后,用bigdecimal.valueof(数据),就会正常显示
DecimalFormat df=new DecimalFormat("###.#################");
double d = 1.03219E+14;
System.out.println(df.format(d));
js 怎么把小数的科学计数法转换成数字 如:1
参考技术A 科学计数法,就是把一个数表示为“由一位整数和几位小数组成的数并与一个10的几次方相乘的数”。例:125.4,表示为1.254*10^20.0457,表示为4.57*10^(-2)以上是关于java代码怎么把科学计数法转换为具体数字的主要内容,如果未能解决你的问题,请参考以下文章