Java整数转换一次最大_在Java中以美分(整数)转换美元(大十进制)的最佳方法是什么?...

最简单的包括我的要点如下:

public static int usdToCents(BigDecimal usd) {

return usd.movePointRight(2).intValueExact();

}

我建议使用intValueExact,因为如果信息丢失(如果您处理超过21,474,836.47美元的交易),这将抛出异常.这也可用于捕获丢失的分数.

我还要考虑接受一分钱一分钱的值是否正确.我会说不,客户端代码必须提供有效的可结算金额,所以如果我需要一个自定义异常,我可能会这样做:

public static int usdToCents(BigDecimal usd) {

if (usd.scale() > 2) //more than 2dp

thrown new InvalidUsdException(usd);// because was not supplied a billable USD amount

BigDecimal bigDecimalInCents = usd.movePointRight(2);

int cents = bigDecimalInCents.intValueExact();

return cents;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值