在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替补)
注意,数据类型变为字符串类型