首页 > 解决方案 > 如何使浮点数显示 -0 也显示为 0?

问题描述

如果我将浮点数 0 除以负值,我会显示为 -0,这很不方便。我怎样才能摆脱这个问题?

float a = 0;
std::cout << a / (-1);

我试图检查一个数字是否等于-0,如果该条件为真,则将变量乘以-1。这不起作用,因为 0 等于 -0。

标签: c++

解决方案


写作a + 0.0f摆脱了floattype的有符号零a

(这是由 IEEE754 定义的,是数字学家熟知的标准技巧。)

因此,如果您有一个可能产生带符号零的表达式,请附加0.0f到末尾:

std::cout << a / (-1) + 0.0f;

推荐阅读