今天写js发现以前很多遇到的写法,技巧都没有记录下来,很可惜,需要再查资料,现在开贴记录下来。
一、js求和计算丢失精度
一个表单提交的时候有一个input框是需要自动计算其他三个input框的结果自动填充的,但是我发现安装下面的js代码编写会出现精度丢失,类似于出现xx.99999999999这种状况
var dataMoney = parseFloat(mini.get('dataMoney').getValue());
var laborMoney = parseFloat(mini.get('laborMoney').getValue());
var installMoney = parseFloat(mini.get('installMoney').getValue());
if (isNaN(dataMoney) || isNaN(installMoney) || isNaN(laborMoney)) return;
var chargeMoney = (dataMoney + laborMoney + installMoney)
后来的解决方案就是在计算结果后加上toFixed(2)即可,里面的2就是你要精确的小数点后几位
var chargeMoney = (dataMoney + laborMoney + installMoney).toFixed(2);
这样计算出来的结果就是准确的,不会出现精度丢失,记录一下.
二、输入框只能输入正整数
input中加入
onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')"
三、对象合并(表单对象合并)
form.on('submit(verifyAssessInfo)', function (data) {
assessInfoFlag = true;
if(submitDataField == null || submitDataField == undefined){
submitDataField = data.field;
}else{
Object.assign(submitDataField,data.field);
}
return false
});
四、动态显示iconfont图标的Unicode编码图标
发现只显示编码,不显示图标
 改成 \ue781 即可
五、科学计数法转数字
java double保存小数,不能超过8位数如:23,084,568.1,它会以科学计数法形式展现(建议使用:BigDecimal)
js处理页面显示
xxx = new Number(value);
function resolveScientificNotation(){
$(".transformation_number").each(function(i,item){
$(item).val(new Number($(item).val()));
})
}
resolveScientificNotation();