求教 6.22848E+18 如何转化成普通数字

sui2121 2016-10-11 07:00:31
求教 JAVA 6.22848E+18 如何转化成普通数字
...全文
1837 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky_08_06_02 2016-10-14
  • 打赏
  • 举报
回复
BigInteger
sui2121 2016-10-12
  • 打赏
  • 举报
回复
引用 1 楼 Krishnna 的回复:

package test;

public class Test {
	public static void main(String[] args) {
		
		String str = "6.22848E+18";
		
		/*通过split方法把该数分成两个数,
		 * 即6.22848和18然后依次放入字符串组中。*/
		String[] s=str.split("E+");
		
		/*并且通过Double类的parseDouble方法解析成double型*/
		double num1 = Double.parseDouble(s[0]);
		double num2 = Double.parseDouble(s[1]);
		
		/*最后打印出来,因为double类型的数取值范围不够,所以改为long类型的值*/
		long num=(long) (num1*Math.pow(10, num2));
		System.out.println(num1);
		System.out.println(num2);
		System.out.println(num);
	}

}
应该就是这样子了,运行无误。得出6228480000000000000。
正确的是 6228481463260686919
  • 打赏
  • 举报
回复
建议楼用这个 java.text.DecimalFormat df=new java.text.DecimalFormat("#.##");
Kany Zhang 2016-10-12
  • 打赏
  • 举报
回复

package test;

public class Test {
	public static void main(String[] args) {
		
		String str = "6.22848E+18";
		
		/*通过split方法把该数分成两个数,
		 * 即6.22848和18然后依次放入字符串组中。*/
		String[] s=str.split("E+");
		
		/*并且通过Double类的parseDouble方法解析成double型*/
		double num1 = Double.parseDouble(s[0]);
		double num2 = Double.parseDouble(s[1]);
		
		/*最后打印出来,因为double类型的数取值范围不够,所以改为long类型的值*/
		long num=(long) (num1*Math.pow(10, num2));
		System.out.println(num1);
		System.out.println(num2);
		System.out.println(num);
	}

}
应该就是这样子了,运行无误。得出6228480000000000000。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧