需求:
在一些实时的展示计算利息或者成本实,剩余的占比和百分比。
到下面的效果:
实现步骤:
首先在日利率input 中添加 oninput事件,oninput="showValue(this.value)"。
function showValue(obj){
//结算占日比率例
var local_bl = parseFloat(obj);
var local_basebl = parseFloat(rll);
$("#F0004").html(toDecimal2(local_bl/local_basebl*100));
rbl=toDecimal4(local_bl/local_basebl);
input_bl = local_bl;
$("#syrll").html(numSub(numSub(rll,zh_rll),input_bl));
}
不四舍五入的方法:
因为计算的利息不四舍五入,准备保留2为小数和4为小数的方法:
//不四舍五入
function toDecimal2(x) {
var f = x;
if(typeof x=="number")
var f = parseFloat(f);
if (isNaN(f)) {
return false;
}
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.00';
}
else{
s = s.split(".")[0]+"."+s.split(".")[1].substring(0,2);
}
return s;
}
//不四舍五入,保留四位
function toDecimal4(x) {
var f = x;
if(typeof x=="number")
var f = parseFloat(f);
if (isNaN(f)) {
return false;
}
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.00';
}
else{
s = s.split(".")[0]+"."+s.split(".")[1].substring(0,4);
}
return s;
}
运算:
float数字的运算
//除法
function numSub(num1, num2) {
var baseNum, baseNum1, baseNum2;
var precision;// 精度
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;
return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
};
//乘法
function accMul(arg1,arg2) {
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m);
}
//加法
function numAdd(num1, num2) {
var baseNum, baseNum1, baseNum2;
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
return (num1 * baseNum + num2 * baseNum) / baseNum;
}