oracle写法
select cast(round(3.23457, 2) as decimal(20, 2)) t1,
cast(round(3.2, 2) as decimal(20, 2)) t2,
cast(round(3, 2) as decimal(20, 2)) t3
from dual
java写法
//保留2位小数
double score = new BigDecimal(score).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
//不足两位则补0
DecimalFormat decimalFormat = new DecimalFormat("0.00#");
String scoreStr = decimalFormat.format(score);
Js写法
推荐方法一,方法二适用一些特殊场景
-方法一(推荐,但可能个别场景使用不了)
var num2=3.1
var t1=parseFloat(num2.toFixed(2))
var t2=parseFloat(num2).toFixed(2)//保留两位小数,不足补0
console.log(t1)
console.log(t2)
- 方式二(用于数据展示时得强制转换)
if(amountResult!==undefined && amountResult!==null && amountResult!==""){
var amountResult= amountResult.toString().indexOf('.')>0?amountResult.length-amountResult.toString().indexOf('.')<3?""+amountResult+'0':amountResult:""+amountResult+'.00';
}
- 方式三(两个方式其实思路一样)
//小数位数不够自动补0,0除外
toDecimal2=(x)=> {
if(!this.isNull(x)){
if(x===0){
return 0;
}else{
var s = x.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
return s;
}
}
}