问题描述
当前做一项目,涉及到的问题是从数据库中查询出来的数据为(String)0.0 -0.074052001如何转换为如下格式0.000000E+00-7.405000E-021.258650E+09 问题补充:dream_hanker 写道
解决方案
没看仔细,现在重新开始DecimalFormat f = new DecimalFormat("0.000000E00"); //定义格式 String str=f.format(Double.parseDouble("0.0"));if (!str.contains("E-")) { //处理数据,给正数的科学计数法添加正号 str = str.replace("E", "E+");}System.out.println(str);我们可以单独定义一个方法:public static String transform(String str){ if (!str.contains("E-")) { str = str.replace("E", "E+"); } return str;}这样大体过程如下:DecimalFormat f = new DecimalFormat("0.000000E00"); String str=f.format(Double.parseDouble("0.0"));System.out.println(transform(str));运行结果是0.000000E+00-7.405000E-022.001000E+03应该能满足你的要求
解决方案二:
结果是0.000000E00-7.405000E-022.001000E03并不是0.000000E+00 科学计数法没有统一的标准,0.000000E+00是excel的格式吧,可能java就把0.000000E00当成标准了呢,那个加号很重要吗,如果那样,你就自己处理下加号
解决方案三:
DecimalFormat f = new DecimalFormat("0.000000E00"); System.out.println(f.format(Double.parseDouble("0.0"))); System.out.println(f.format(Double.parseDouble("-0.07405"))); System.out.println(f.format(Double.parseDouble("2001")));
解决方案四:
刚才的方法并不能总是以科学计数法显示,得用java.text包中的DecimalFormat类,给你一段代码你看一下import java.text.DecimalFormat;import java.text.NumberFormat;public class Main { public static void main(String args[]) { NumberFormat formatter = new DecimalFormat(); int maxinteger = Integer.MAX_VALUE; System.out.println(maxinteger); formatter = new DecimalFormat("0.
解决方案五:
解决方案六:
E0"); System.out.println(formatter.format(maxinteger)); formatter = new DecimalFormat("0.
解决方案七:
##E0"); System.out.println(formatter.format(maxinteger)); int mininteger = Integer.MIN_VALUE; System.out.println(mininteger); formatter = new DecimalFormat("0.
解决方案八:
解决方案九:
E0"); System.out.println(formatter.format(mininteger)); formatter = new DecimalFormat("0.
解决方案十:
##E0"); System.out.println(formatter.format(mininteger)); double d = 0.12345; formatter = new DecimalFormat("0.
解决方案十一:
##E0"); System.out.println(formatter.format(d)); formatter = new DecimalFormat("000000E0"); System.out.println(formatter.format(d)); }}你可以参照java api,还有很多选项能定制
解决方案十二:
使用String类的public static String format(String format, Object... args)方法,'g', 'G' 格式符根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化
解决方案十三:
强制转换层long型不就行了嘛?