kotlin 与运算_用Kotlin固定浮点运算

本文探讨了Java浮点运算的常见问题,并通过引入Kotlin的扩展方法和运算符重载来提升代码可读性和准确性。通过示例展示了如何在Kotlin中优雅地处理浮点数计算,降低使用BigDecimal的复杂性。
摘要由CSDN通过智能技术生成

kotlin 与运算

这周,我终于花时间与Sonar一起分析我们的代码库。 特别是让我意识到了很多与浮点算术有关的问题。

有趣的Java浮点算法

那些在学术背景下学习过Java的人可能还记得关于FP算术的一些疑惑。 然后,如果您从未使用过它们,您可能会忘记它们。 这是一个有趣的非常简单的示例,事实证明是:

doublea=5.8d;
doubleb=5.6d;
doublesub=a-b;
assertThat(sub).isEqualTo(0.2d);

与常识相反,此代码段引发AssertionErrorsub 等于0.2而是0.20000000000000018

BigDecimal作为拐杖

当然,没有任何一种值得称呼的语言能使它站出来。 BigDecimal是Java的答案:

BigDecimal类提供用于算术,缩放操作,舍入,比较,哈希和格式转换的操作。

让我们使用BigDecimal更新以上代码段:

BigDecimala=newBigDecimal(5.8d);
B
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值