开发实战:Float 如何保留 2 位小数
在开发有翼小助手的微信商户号充值功能时,涉及到了手续费的计算。微信支付的费率为 0.6~1%,平台暂定费率为 0.8%。
例如:用户充值金额为 238 元,则需要交给平台的手续费为:
238*0.008=1.904
这里的 1.904 就需要保留 2 为小数,精确到分,最后取值为 1.90。
Float 如何保留 2 位小数,Java 中可以通过 BigDecimal 的 setScale 方法实现:
其中的 RoundingMode 可取值如下:
RoundingMode.UP:小数不为 0 时进位
RoundingMode.DOWN:舍去小数
RoundingMode.CEILING:正数相当于 RoundingMode.UP,负数相当于 RoundingMode.DOWN
RoundingMode.FLOOR:正数相当于 RoundingMode.DOWN,负数相当于 RoundingMode.UP
RoundingMode.HALF_UP:四舍五入
RoundingMode.HALF_DOWN:五舍六入
RoundingMode.HALF_EVEN:整数部分为奇数时相当于 RoundingMode.HALF_UP,
整数部分为偶数时相当于 RoundingMode.HALF_DOWN
RoundingMode.UNNECESSARY:小数不为 0 时,抛出例外
版权声明: 本文为 InfoQ 作者【worry】的原创文章。
原文链接:【http://xie.infoq.cn/article/ee3a000be26da1b38c96b48d9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论