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 要显示的数字 是 无 type NUMBER,CURRENCY,或 PERCENT类型 否 Number pattern 指定一个自定义的格式化模式用与输出 否 无 currencyCode 货币码(当type="currency"时) 否 取决于默认区域 currencySymbol 货币符号 (当 type="currency"时) 否 取决于默认区域 groupingUsed 是否对数字分组 (TRUE 或 FALSE) 否 true maxIntegerDigits 整型数最大的位数 否 无 minIntegerDigits 整型数最小的位数 否 无 maxFractionDigits 小数点后最大的位数 否 无 minFractionDigits 小数点后最小的位数 否 无 var 存储格式化数字的变量 否 Print to page scope var属性的作用域 否 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();
本篇引用自:
http://blog.csdn.net/NikiHou/article/details/78615065,
http://www.runoob.com/jsp/jstl-format-formatnumber-tag.html
自己存下来慢慢学习