1.在java后台中进行转换
a.使用BigDecimal类

    double num=8.2347983984297E7; 
  
 
  

    String str=new BigDecimal(num).toString(); 
  
 
  

      
  
 
  

    注意:以上方式转换之后的可能不是你想要的模样,而是酱紫——82347983.9842970073223114013671875,原因请参考下方用法链接。  
  
 
  

    想要数值恢复原样需要使用BigDecimal的String参数构造,而不是上面的Double参数构造,解决方案如下(注意红色部分): 
  
 
  

      
  

     方式A: 
   

     double num=8.2347983984297E7; 
   

     String str=new BigDecimal(num+"").toString(); 
   
 
   

     方式B: 
   
 
   

     Double num=8.2347983984297E7;String str=new BigDecimal(num.toString()).toString(); 
   
 
   

     结果就成了你想要的样子:82347983.984297 
   
b.使用DecimalFormat类

    double num=8.8888888E10; 
  
 
  

    String str=new DecimalFormat("0.00").format(num);//注意,这种方式是保留几位小数 
     
  
2.在jsp页面中进行转换
a.使用jstl标签fmt:formatNumber

    导入:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 
  
 
  

    使用 :<fmt:formatNumber value="8.8888888E10" pattern="#.##" minFractionDigits="2" > </fmt:formatNumber>   
  
 
  

 
<fmt:formatNumber>标签用于格式化数字,百分比,货币。
语法格式
<fmt:formatNumber
  value="<string>"
  type="<string>"
  pattern="<string>" currencyCode="<string>" currencySymbol="<string>" groupingUsed="<string>" maxIntegerDigits="<string>" minIntegerDigits="<string>" maxFractionDigits="<string>" minFractionDigits="<string>" var="<string>" scope="<string>"/>

属性

<fmt:formatNumber>标签有如下属性:

属性描述是否必要默认值value要显示的数字是无typeNUMBER,CURRENCY,或 PERCENT类型否Numberpattern指定一个自定义的格式化模式用与输出否无currencyCode货币码(当type="currency"时)否取决于默认区域currencySymbol货币符号 (当 type="currency"时)否取决于默认区域groupingUsed是否对数字分组 (TRUE 或 FALSE)否truemaxIntegerDigits整型数最大的位数否无minIntegerDigits整型数最小的位数否无maxFractionDigits小数点后最大的位数否无minFractionDigits小数点后最小的位数否无var存储格式化数字的变量否Print to pagescopevar属性的作用域否page

如果type属性为percent或number,那么您就可以使用其它几个格式化数字属性。maxIntegerDigits属性和minIntegerDigits属性允许您指定整数的长度。若实际数字超过了maxIntegerDigits所指定的最大值,则数字将会被截断。

有一些属性允许您指定小数点后的位数。minFractionalDigits属性和maxFractionalDigits属性允许您指定小数点后的位数。若实际的数字超出了所指定的范围,则这个数字会被截断。

数字分组可以用来在每三个数字中插入一个逗号。groupingIsUsed属性用来指定是否使用数字分组。当与minIntegerDigits属性一同使用时,就必须要很小心地来获取预期的结果了。

您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。

符号描述0代表一位数字E使用指数格式#代表一位数字,若没有则显示 0,前导 0 和追尾 0 不显示。.小数点,数字分组分隔符;分隔格式-使用默认负数前缀%百分数?千分数¤货币符号,使用实际的货币符号代替X指定可以作为前缀或后缀的字符'在前缀或后缀中引用特殊字符

<h3>数字格式化:</h3>

<c:set var="balance" value="120000.2309" /> <p>格式化数字 (1): <fmt:formatNumber value="${balance}" type="currency"/></p> <p>格式化数字 (2): <fmt:formatNumber type="number" maxIntegerDigits="3" value="${balance}" /></p> <p>格式化数字 (3): <fmt:formatNumber type="number" maxFractionDigits="3" value="${balance}" /></p> <p>格式化数字 (4): <fmt:formatNumber type="number" groupingUsed="false" value="${balance}" /></p> <p>格式化数字 (5): <fmt:formatNumber type="percent" maxIntegerDigits="3" value="${balance}" /></p> <p>格式化数字 (6): <fmt:formatNumber type="percent" minFractionDigits="10" value="${balance}" /></p> <p>格式化数字 (7): <fmt:formatNumber type="percent" maxIntegerDigits="3" value="${balance}" /></p> <p>格式化数字 (8): <fmt:formatNumber type="number" pattern="###.###E0" value="${balance}" /></p> <p>美元 : <fmt:setLocale value="en_US"/> <fmt:formatNumber value="${balance}" type="currency"/></p> </body> </html>运行结果如下:

数字格式化:


格式化数字 (1): ¥120,000.23 格式化数字 (2): 000.231 格式化数字 (3): 120,000.231 格式化数字 (4): 120000.231 格式化数字 (5): 023% 格式化数字 (6): 12,000,023.0900000000% 格式化数字 (7): 023% 格式化数字 (8): 120E3 美元 : $120,000.23


b.使用js脚本


    var num=8.8888888E10;  
  

  
  


    var str=parseFloat(num).toString();