gpt4 book ai didi

c++ - 用于负零浮点值?

转载 作者:IT老高 更新时间:2023-10-28 21:47:18 26 4
gpt4 key购买 nike

考虑以下 C++ 代码:

double someZero = 0;
std::cout << 0 - someZero << '\n'; // prints 0
std::cout << -someZero << std::endl; // prints -0

问题出现了:负零有什么好处,是否应该防御性地避免它(即使用减法而不是在变量上加上减号)?

最佳答案

来自维基百科:

It is claimed that the inclusion of signed zero in IEEE 754 makes it much easier to achieve numerical accuracy in some critical problems[1], in particular when computing with complex elementary functions[2].

第一个引用文献是 W. Kahan 的“Branch Cuts for Complex Elementary Functions or Much Ado About Nothing's Sign Bit”,可供下载 here .

该论文中的一个例子是 1/(+0) vs 1/(-0)。在这里,零的符号有很大的不同,因为第一个表达式等于 +inf 而第二个表达式等于 -inf

关于c++ - 用于负零浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7946913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com