java sql 写入 float_Jsp/Java/jstl/sql—— 针对double/float类型保留两位小数

需求

在对于数据的处理方面,我们有时候会碰到取整,或者保留两位小数等等。

比如,我们要对'数量'这一列取整,由32.00变成32;

对金额这一列保留两位小数,由32.12463 ...变成32.12;

JSTL表示:

前提:

代码:

关键点在于:maxFractionDigits =“0”,如果你取整的话,这个可以不用写,如果你要保留两位小数的话,这里改成2即可。

注意:JSTL采用的是四舍六入五奇偶的算法,不是四舍五入简单来说就是:五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

JS表示:

前提:

数字的类型为INT类型或者浮动类型,在这里可以用到的JS的

parseFloat();

parseInt();

方法进行转换,如果不是,可以进行toFixed()方法,不建议采用,存在精度丢失问题

比如:

3.155.toFixed(2) = 3.15

3.1550001.toFixed(2) = 3.16

在这里,可以采用Math()方法;

代码:

//去尾法

Number.prototype.toFloor = function (num) {

return Math.floor(this * Math.pow(10, num)) / Math.pow(10, num);

};

//进一法

Number.prototype.toCeil = function (num) {

return Math.ceil(this * Math.pow(10, num)) / Math.pow(10, num);

};

//四舍五入法

Number.prototype.toRound = function (num) {

return Math.round(this * Math.pow(10, num)) / Math.pow(10, num);

};

注意:此处的xxx.toFixed(X)的方法也不是严格的四舍五入,通过网上的查找,这个方法是有缺陷的,对于精密数字或者重要的数据来讲,不建议使用这个,如果没选择的话,此处的解决办法为:JS中的toFixed()四舍五入方法

Java的的表示:

在这里,我只用了最简单的Java的的最简单粗暴的方法处理保留两位小数的。即采用的是DecimalFormat的方法

代码:

DecimalFormat df = new DecimalFormat("#.00");

System.out.println(df.format(f));

注意:此处的方法采用的是四舍五入,经过而且处理之后报道查看值的英文字符串字符串,当然,对于Java的而言,还有其他的处理方法,在这里我就不一一列举了。

sql表示:

是在字段中进行控制,比如

CONVERT (m.num,DECIMAL (20,2)),

格式为:convert(字段名称,decimal(20,2))

其中,decimal(20,2)代表的是:20代表长度,即最大值,最多只能有20个数字;2代表保留的小数位。

注意:如果这是float类型的话,你在业务逻辑中又对他进行的加减计算,他的精度又会丢失,从而没有效果

参考链接:

的java的的的的的保留两位小数4种方法

JS中的toFixed()四舍五入方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值