c++ - 如何使浮点数显示 -0 也显示为 0?
问题描述
如果我将浮点数 0 除以负值,我会显示为 -0,这很不方便。我怎样才能摆脱这个问题?
float a = 0;
std::cout << a / (-1);
我试图检查一个数字是否等于-0,如果该条件为真,则将变量乘以-1。这不起作用,因为 0 等于 -0。
解决方案
写作a + 0.0f
摆脱了float
type的有符号零a
。
(这是由 IEEE754 定义的,是数字学家熟知的标准技巧。)
因此,如果您有一个可能产生带符号零的表达式,请附加0.0f
到末尾:
std::cout << a / (-1) + 0.0f;
推荐阅读
- arrays - 设置可见性槽属性不起作用 actionscript 3.0
- android - Swipte to Refresh 不断添加 TextViews
- hive - 在 Hive 表中重命名名称为 count( distinct( id )) 的列
- sql - 使用 DATEADD 后如何转换值
- java - JUnit 5 是否支持按字母顺序或任何类似功能执行测试方法?
- asp.net-mvc - 如何将值从 PartialView 传递到 View ASP.NET MVC
- c# - 如何使用 Confluent.Kafka .Net 客户端创建 Kafka 主题
- c# - 使用 IEnumerable 初始化的 HashSet 包含重复元素
- windows - 从 Go 程序调用 Windows 批处理文件,使其在新窗口中打开
- java - JHipster 新项目无法运行