浮点数精度问题详解
创作时间:
作者:
@小白创作中心
浮点数精度问题详解
引用
CSDN
1.
https://blog.csdn.net/weixin_45136016/article/details/139430682
浮点数精度问题一直是编程和计算机科学中的一个重要话题。本文将从浮点数的定义、二进制与十进制的转换、IEEE754表示方法、C#中不同浮点数类型的比较以及解决浮点数运算精度问题的方法等多个方面进行详细探讨。
1.什么是浮点数
因为资源的限制,数学中的小数无法直接在计算机中准确表示。为了更好地表示它,计算机科学家们发明了浮点数,这是对小数的近似表示。
也就是说浮点数是相对于定点数而言的,表示小数点位置是浮动的。比如 7.5 × 10、0.75 × 10² 等表示法,值一样,但小数点位置不一样。
具体来说,浮点数是指用符号、尾数、基数和指数这四部分来表示的小数。
2. 二进制与十进制的转换
2.1 二进制与十进制的相互转换(方法介绍,思维理解)
二进制与十进制的相互转换(方法介绍,思维理解)
2.2 在线转换工具
二进制与十进制在线转换工具
3.浮点数的 IEEE754 表示
因为基数固定是 2,因此不存
参考文章:
https://www.cnblogs.com/hzy1987/p/18021627
4.C# 浮点型float、double 、decimal 比较
类型 | 名称 | bit | 有效数字( 带有一个固定隐含位) | 数值范围 | 是否基础类型 |
|---|---|---|---|---|---|
float | 单精度浮点数 | 32 | 7(8) | ±1.5×10E−45 ~ ±3.4×10E38 | 是 |
double | 双精度浮点数 | 64 | 15(16) | ±5.0×10E−324 ~ ±1.7×10E308 | 是 |
decimal | 高精度浮点数 | 128 | 28 | ±1.0×10E−28 ~ ±7.9×10E28 | 否 |
5.解决运算精度问题
5.1 浮点数预算精度问题
public static void Main(string[] args)
{
Console.WriteLine(0.3f - 0.2f); // 0.10000001
Console.WriteLine(0.3 - 0.2); // 0.09999999999999998
}
5.2 解决方案
5.2.1 放大倍数计算
var tmp1 = (0.3f * 10) - (0.2f * 10);
float a = tmp1/10;
Console.WriteLine(a); // 0.1
var tmp2 = (0.3 * 10) - (0.2 * 10);
double b = tmp2/10;
Console.WriteLine(b); // 0.1
5.2.2 ToString()
string str1 = (0.3f -0.2f).ToString("N3"); // 保留3位有效数字
string str2 = (0.3 -0.2).ToString("N3"); // 保留3位有效数
float.TryParse(str1, out float a);
Double.TryParse(str2, out double b);
Console.WriteLine(a); // 0.1
Console.WriteLine(b); // 0.1
5.2.3 Math.Round()
关于Math.Round()的使用:
C# Math.Round() 四舍六入五取偶
double a = Math.Round(0.3 - 0.2, 2, MidpointRounding.AwayFromZero);
Console.WriteLine(a); // 0.1
热门推荐
人员排班系统如何提高员工的工作满意度?
王力宏:音乐界的华人跨界巨星
曲阳县文化旅游概况
欧阳明高:预计全固态电池2027年开始装车
齐纳二极管教程:原理、特性及稳压应用
电脑独立显卡的作用和功能(了解独立显卡,提升电脑性能)
如何评估网站/软件所需带宽
室外泳池灯光设计规范 室外游泳池照明标准
如何选择合适的鱼缸灯:LED灯、紫外线灯和卤素灯的优缺点及功率选择指南
包头市通过"三聚焦、三提升"激发青年夜校活力
打呼噜是病吗?一文读懂阻塞性睡眠呼吸暂停综合征
保险责任准备金的计算与管理探讨
同轴电缆性能评测:速度、衰减与抗干扰能力的全面分析!
如何识别网络上的谣言和假新闻
肩颈疼痛有什么治疗好办法
从物理特性到多维表征:微纳塑料健康风险评估的新范式
白居易《长恨歌》:宫廷爱恨的悲欢离合与诗意的深情叙述
裂脑人实验:揭秘大脑左右半球的独立意识
心理学上的裂脑人实验:我们的大脑可能不是一个,而是两个
MacBook如何管理开机启动项目
指示乱、充电慢、费用涨……新能源车主公共场所“新充电焦虑”
5G+AI开启智能互联的新趋势
10条关于后台管理界面的数据可视化设计建议
如何运用色彩提升三维动画的视觉效果
俗话说:“白天立春暖洋洋,晚上立春冷飕飕”,2025年立春时间揭晓
吡唑醚菌酯在水稻种植中的禁用及其影响
甲状腺功能减退(简称甲减)可能会对怀孕产生一定影响
大学生应保持何种人生态度
中老年人最爱看的短视频,你根本想象不到
泰国北榄府化工厂爆炸最新情况:十几个小时后火势仍未得到完全控制