gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:19 25 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)1/(-0)。在这里,零的符号有很大的不同,因为第一个表达式等于 +inf,第二个表达式等于 -inf

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

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