以0.5为例,0.5*2=1,所以二进制表示为0.10

以0.625为例,0.625*2=1.25,所以二进制表示为0.101

而这种情况下,0.1是无限循环状态,所以我们使用IEEE 754标准,即float,与double使用sem序列,表达式为n=(-1)^s*m*2^e

  当n<0时,s=1,n>=0,s=0;

  m是尾数位,有效数字位;e是n的指数位。

注意:JAVA当中不要用float与double进行金额计算,会发生精度丢失,建议使用BigDecimal来计算。

本文链接:https://zhuanlan.zhihu.com/p/265281184

相关文章:

  • 2021-09-29
  • 2021-08-01
  • 2021-08-03
  • 2021-09-06
  • 2022-01-01
  • 2021-10-10
  • 2021-06-16
  • 2022-01-02
猜你喜欢
  • 2021-09-17
  • 2021-05-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案