小数转二进制

小数转二进制

小数转二进制常用的方法有两种:

  • 定点存储法

    以0.625为例-----转换二进制为:
    在这里插入图片描述

    • 浮点存储法

二进制为:01000001 10011101 00000000 00000000

在这里插入图片描述

  • C#里使用浮点存储法,先用定点存储法计算后再进行浮点存储法计算。

  • 由于转换时,某些数据比如0.1 小数部分乘2以后不能完全乘尽(0.2, 0.4, 0.8, 0.6 …… 无限循环) 所以小数会出现丢失精度的情况,不能完全准确的表达这些乘不尽的情况,所以遇到类似精度丢失,数据变大了一点点,变小了一点点的问题,知道是这个原理导致的问题,既不是你写错了,也不是计算机出bug了,完全是转换规则的问题,无法避免。float类型换成double提高精度依然会有该问题。想解决精度丢失的问题,可以把数字小数部分当成整数计算 比如a=1.1 b=1.3 计算a+b 可以这样(Math.Round(a10) + Math.Round(b10)) / 10 注意数字别溢出最大范围

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值