JS、JSP页面保留小数位数/四舍五入的方法

在html里面可以用fmt标签,在JQuery中就不能用,

在JS中可以用fmt标签、toFixed()、Math(),

在JQuery中可以用toFixed()、Math(),

fmt标签、toFixed()可以指定小数位数,Math()只能保留小数,如果要保留一位小数需要Math(x*10)/10。

 

html中使用fmt标签

<span class="num">${itsm.Score}</span>
//修改为
<span class="num"><fmt:formatNumber type="number" value="${itsm.Score}" pattern="0.0"/></span>

JS中使用fmt标签、toFixed()、Math()

    <script>
        //服务指标-15天数据,换ajax获取
        var day_Total = new Array();
	    var day_ResponseTime = new Array();
	    var day_ReceiveTime = new Array();
	    var day_Score = new Array();
	    var day_Date = new Array();
	    //ReportFormAction.java通过request存储JSONArray变量itsmServiceDay,此处取数据
	   <c:forEach var="var" items="${itsmServiceDay}">
	   	//如下两种表达式都可行
	   	day_Total.push('${var.TOTAL}');
	        day_Date.push(${var.DATE});
	       	day_ResponseTime.push(<fmt:formatNumber type="number" value="${var.XIANGYING_TIME}" pattern="0.0"/>);
	       	day_ReceiveTime.push(Math.round(${var.JIEDAN_TIME}*10)/10);
	       	<%--'${var.JIEDAN_TIME}'*10)可以,'${var.SCORE}'.toFixed(1)却不行--%>
	       	day_Score.push(${var.SCORE}.toFixed(1));
	    </c:forEach>

注意:

day_Date.push(${var.DATE});和 day_Total.push('${var.TOTAL}'); 两种表达式都行,前者容易报错,后者比较正规;

'${var.JIEDAN_TIME}'*10)可以,'${var.SCORE}'.toFixed(1)却不行。

JQuery中用toFixed()、Math()

        //点击触发“ITSM服务-本月”
        //从http://localhost:8080/ekp/sys/operationPortal.do?method=ITSMMonth获取数据
        //数据格式:{"key1":V1,"key2":V2...}
       	$("#ITSMMonth").click(function(){
       		$.ajax({	
            	type:"POST"	,
                url:"${LUI_ContextPath}/sys/operationPortal.do?method=ITSMMonth",
        	    async : true,
                dataType:'json',
                contentType: "application/x-www-form-urlencoded; charset=utf-8",
                success:function(data){
                	var responseTime = data.assignTime.toFixed(1);  //响应时间
                	var receiveTime = Math.round(data.receiptTime);  //接单时间
                	var score = data.avgScore;  //平均得分
                    
                	$("#monthResponseTime").html(responseTime);
                	$("#monthReceiveTime").html(receiveTime);
                	$("#monthScore").html(score);
                }//success结尾
        	});
       	});

1、fmt方法

fmt标签介绍:https://www.runoob.com/jsp/jstl-format-formatnumber-tag.html

首先引入fmt标签:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

然后结合EL表达式,<fmt:formatNumber type="number" value="${value}" pattern="0.00"/>,

pattern="0.00"也可以写成pattern="#.##",或者maxFractionDigits="2",minFractionDigits:最少小数位数,

示例:

<span class="num">${itsm.Score}</span>
//修改为
<span class="num"><fmt:formatNumber type="number" value="${itsm.Score}" pattern="0.0"/></span>

附:后台保留小数方法

DecimalFormat df = new DecimalFormat("0.00");
double d = 3.1415;
String db = df.format(d);
System.out.println(db);

//或者用链式编程
new DecimalFormat("0.00").format(3.1415)
new java.text.DecimalFormat("#.00").format(3.1415);

2、toFixed()方法

需注意,保留两位小数,将数值类型的数据改变成了字符串类型

3、Math.round(),四舍五入 

Math方法详解:https://blog.csdn.net/qiudechao1/article/details/97613018

注意,不改变数据类型,

Math.floor(x):向下取整,Math.ceil(x):向上取整。

4、字符串匹配

注意,先将数据转换为字符串,最后再转为数值类型

5、四舍五入保留2位小数(若第二位小数为0,则保留一位小数)

注意,数据类型不变

6、四舍五入保留2位小数(不够位数,则用0替补)

注意,数据类型变为字符串类型

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值