
前几年Android手机刚刚普及的时候,大家发现Android手机自带的计算器有个大bug,1.2-1.1竟然等于0.099999999。这是因为有些有限位数的十进制浮点数无法使用二进制精确表示,比如说0.2在二进制里面就是个无限循环的浮点数。
BCD码可以解决这个问题,IBM为十进制运算制定了一套标准,其物理层编码就是基于BCD的,主要应用于金融,商业和面向用户的应用程序(比如计算器)
参考:http://speleotrove.com/decimal

前几年Android手机刚刚普及的时候,大家发现Android手机自带的计算器有个大bug,1.2-1.1竟然等于0.099999999。这是因为有些有限位数的十进制浮点数无法使用二进制精确表示,比如说0.2在二进制里面就是个无限循环的浮点数。
BCD码可以解决这个问题,IBM为十进制运算制定了一套标准,其物理层编码就是基于BCD的,主要应用于金融,商业和面向用户的应用程序(比如计算器)
参考:http://speleotrove.com/decimal