`

将科学计数法转换为日常的计数法

 
阅读更多
将科学计数法转换为日常的计数法

String amount = "2.0E8";
System.err.println(ConScience2Num(amount));



 /* 
		     * 将科学计数法转换为常规计数法
		     * @author macleo
		     * @date 2011.12.9.Fri.
		     */
		    
			public static String ConScience2Num(String str)
			{
				int len = Integer.parseInt(str.substring(getNum(str),getNum(str)+1));
				String bit = "1";
				for(int i = 0 ; i<len;i++)
				{
					bit+="0";
				}
				//BigDecimal bitResult = new BigDecimal(bit);
				//BigDecimal result = bitResult.multiply(getDecimal(str));
			    BigDecimal last = new BigDecimal(bit).multiply(getDecimal(str)).setScale(1,1);
				return FormatCurrency(last.toString(),2);//转换为格式化金额
			}
			
			public static int getNum(String str)
			{
				return str.indexOf('E')+1;
			}
			
			public static BigDecimal getDecimal(String str)
			{
				
				return new BigDecimal(str.substring(0, str.indexOf('E')));
			}

		    /**
		     * 金额格式化
		     * @param s 金额
		     * @param len 小数位数
		     * @return 格式后的金额
		     */
		    public static String FormatCurrency(String s, int len) {
		        if (s == null || s.length() < 1) {
		            return "";
		        }
		        NumberFormat formater = null;
		        double num = Double.parseDouble(s);
		        if (len == 0) {
		            formater = new DecimalFormat("###,###");
		     
		        } else {
		            StringBuffer buff = new StringBuffer();
		            buff.append("###,###.");
		            for (int i = 0; i < len; i++) {
		                buff.append("#");
		            }
		            formater = new DecimalFormat(buff.toString());
		        }
		        return formater.format(num);
		    }



反正用可以了...
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics