c# - 具有奇怪结果的浮点数运算
问题描述
在阅读浮点数精度时,我做了一个小测试,并期望结果 1 为真,但结果恰恰相反。我不知何故找不到合理的解释,请帮助:)
输入
using System;
public class Program
{
public static void Main()
{
float a = 0.1f;
float b = 0.2f;
float c = 0.1f + 0.2f;
float d = a + b;
bool result1 = (a + b) == (0.1f + 0.2f);
bool result2 = c == d;
Console.WriteLine("result1 == " + result1);
Console.WriteLine("result2 == " + result2);
}
}
输出:
result1 == False
result2 == True
解决方案
推荐阅读
- graphics - 开始使用 robot_startup 时出现 ROS RViz 问题
- java - 无法使用 @DataMongoTest 在测试中自动装配存储库
- mysql - 不正确的字符串值:第 1 行的列 'message' 的 '\xE7\x9A'
- flutter - 如何在具有空安全性的动画构建器中返回?
- gnuplot - Gnuplot:将数据文件拆分为设置的行数并分别绘制每组
- javascript - 如何将多维数组添加到序列化的 POST 数据中?
- spring-boot - Spring boot2 路径变量验证
- html - mat-grid-list 未对齐的 mat-grid-tiles
- android - BluetoothManager getConenctedDevices 返回一个空数组
- python - 如果我尝试在 Python 中使用 IF LIST == 'value' 会出现错误吗?