zoukankan      html  css  js  c++  java
  • 数字处理

      java 数字格式化:小数点、百分比 NumberFormat Decimalformat

      在处理datatable中数字时,可能为了显示的美观,会要求数字、金额...处理成类似123,456.78这样,每三位加逗号,保留两位小数,这是最近我遇到的,当然还有其他的格式  

      后台处理方法:  

      1:Decimalformat df1 = new Decimalformat("####.000");       

        System.out.println(df1.format(1234.56));    

      显示:1234.560  2:NumberFormat nf   =   NumberFormat.getPercentInstance();   

         // nf.setMinimumFractionDigits( 2 );         保留到小数点后几位        显示:47.00%

       System.out.println(nf.format(0.47));       显示:47%       

    (法二)       DecimalFormat df1 = new DecimalFormat("##.00%");   

      //##.00%   百分比格式,后面不足2位的用0补齐       

      baifenbi= df1.format(fen);        显示:47.00%  

    3:DecimalFormat   df   =   new   DecimalFormat("###,##0.00");    

       System.out.println(nf.format(24.7));       

       显示:24.70      

       System.out.println(nf.format(23123.47));    

       显示:123,23.47  

    补充:0.00、0.01; 0.00%、0.12%这样的数据,如果按照上面的格式可能会造成数据显示成:.00、.01; .00%、.12%,怎么办呢?只要把格式改成:    

       DecimalFormat df1 = new DecimalFormat("0.00");       

       DecimalFormat df2 = new DecimalFormat("0.00%");    

       df1.formatI(number);  

       df2.formatI(number);     

     显示:0.00、0.01; 0.00%、0.12%

    jQuery处理方法:  

     1:保留两位小数  

      var Num=3   var Price=11   var ss = (Number(Price*Num)).toFixed(2);

     2:加载DataTable处理数据时

     render : function(data, type, row, meta) {  

               if(data != ""){       

               data = fmoney(data, 2);        

            }     

           return data;   

          }  

    然后在公共js里加上这一段:  

    function fmoney(s, n) {    

        n = n > 0 && n <= 20 ? n : 2;  //保留小数点后几位,大于0小于20,否则默认两位   

       s = parseFloat((s + "").replace(/[^d.-]/g, "")).toFixed(n) + "";   

         var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; 

         t = "";     

     for (i = 0; i < l.length; i++) {     

         t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");    

        }       

    return t.split("").reverse().join("") + "." + r;   }   

    当然前提是后台传过来的数据是float、BigDecimal、Decimal...

     3:页面直接获取参数  

      添加标签<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>  

      然后用标签包住数据<fmt:formatNumber value="${order.OdrRefundAmount }" pattern="#,##0.00#"/>

     4:jQuery插件方法

       引入jquery和插件(jquery省略  

       <script src="jquery.formatCurrency-1.4.0.js" type="text/javascript" ></script>

       使用插件API方法,这种会在金额前面加上$符号

       $('.label').formatCurrency();

  • 相关阅读:
    Android导包导致java.lang.NoClassDefFoundError
    canvas
    [java]OutOfMemoryError 原因及解决办法
    [转]加速Android Studio/Gradle构建
    本地Tomcat配置ssl 实现https访问
    机器学习中的无监督学习
    SQL 创建数据库、表以及索引
    海马玩模拟器共享文件夹导入导出图文教程
    Java-SDK-图像识别实现身份证照片获取信息
    Java中的平方
  • 原文地址:https://www.cnblogs.com/juniorjava/p/7245461.html
Copyright © 2011-2022 走看看