当前位置: 首页 > news >正文

C# 中,0.1 在什么情况下不等于 0.1 ?

var v = 0.1f;
if (v == 0.1)
{MessageBox.Show("ok");
}

以上代码,在c# 中永远也不会弹出 ok 的提醒,因为:

等价于:

if ( 0.1f  == 0.1d )

等价于:

if ( (float)0.100000001 == (double)0.10000000000000001 )

等价于:

if ( (double)0.10000000149011612 == (double)0.10000000000000001 )

因此,v!=0.1

因此,使用时要修改为:if ( v == 0.1f ) , 而不是 if ( v == 0.1 )


测试代码:

var v = 0.1f;  
var d = 0.1;// 显示实际存储的值
Debug.WriteLine($"v (float) 的实际值: {v:G30}");
// 输出:v (float) 的实际值: 0.10000000149011612 
Debug.WriteLine($"d (double) 的实际值: {d:G30}");
// 输出:d (double) 的实际值: 0.10000000000000001 
// 显示类型转换后的值
Debug.WriteLine($"v 转换为 double: {(double)v:G30}");
// 输出:v 转换为 double: 0.10000000149011612 
// 比较
Debug.WriteLine($"v == 0.1: {v == 0.1}");  // false
Debug.WriteLine($"v == 0.1f: {v == 0.1f}");  // true
http://www.dtcms.com/a/578147.html

相关文章:

  • 哪块行业需要网站建设揭阳企业建站系统
  • 目前主流网站开发所用软件建筑工程公司起名
  • 【stm32协议外设篇】- NEO-6M GPS 模块
  • 内网网站开发费用泰安网签查询2023
  • 微算法科技(NASDAQ MLGO)采用动态层次管理和位置聚类技术,修改pBFT算法以提高私有区块链网络运行效率
  • 潍坊网络建站模板wordpress 指定页面nofollow
  • 从Hive on YARN到Hive on Spark
  • 创作写作-李劭卓
  • 论文分享 |Spark-TTS:用解耦语音令牌实现高效可控的语音合成
  • Spark 文本分类实战经验总结
  • 英伟达体系内关于 DGX Spark 的讨论观点整理
  • 模版型网站a站为什么会凉
  • 强软弱虚四种引用
  • [Esterel大师课] Gérard Berry:使用Esterel v7进行同步多时钟电路设计(2013)
  • 有什么学做木工的网站吗WordPress添加下载弹窗
  • 目标检测模型SSD详解与实现
  • 网站弹窗广告代码企业官方网站的作用
  • 网站建设排行山西省确诊病例最新情况
  • 线程池浅谈
  • KubeSphere在线安装单节点K8S集群
  • 北京安慧桥网站建设口碑好的家装前十强
  • 著名建筑网站正规的教育机构有哪些
  • Linux - Vault
  • VSCode+Cline部署本地爬虫fetch-mcp实战
  • 使用python-pandas-openpyxl编写运营查询小工具
  • Label Studio 安装与简单使用指南
  • 宁波正规网站seo公司php网站开发机试题目
  • 牛客小白月赛122 D题x_to_y_2
  • 生态环境影响评价图件制作:融合ArcGIS与ENVI,掌握土地利用、植被覆盖、土壤侵蚀、水系提取等专题制图技术!
  • 深入理解 Vue3 Vapor 模式:从原理到实践