用于负零浮点值? 考虑下面的C++代码: double someZero = 0; std::cout << 0 - someZero << '\n'; // prints 0 std::cout << -someZero << std::endl; // prints -0 double someZero=0; 例如,负零在处理复数时有一些用途

用于负零浮点值? 考虑下面的C++代码: double someZero = 0; std::cout << 0 - someZero << '\n'; // prints 0 std::cout << -someZero << std::endl; // prints -0 double someZero=0; 例如,负零在处理复数时有一些用途,c++,floating-point,ieee-754,C++,Floating Point,Ieee 754,在日常使用中,应尽量避免负零 有关“负零”的背景/用途/陷阱信息的一些链接: 来自维基百科: 有人声称,IEEE 754中包含有符号零使得在一些关键问题[1]中更容易获得数值精度,特别是在使用复杂的初等函数进行计算[2]时 第一个参考文献是W.Kahan的“复杂初等函数的分支切割或无事生非的符号位”,可供下载 那篇论文中的一个例子是1/(+0)vs1/(-0)。在这里,零的符号产生了巨大的差异,因为第一个表达式等于+inf,第二个表达式等于-inf,我只能看到两个实际用例: 您希望

在日常使用中,应尽量避免负零

有关“负零”的背景/用途/陷阱信息的一些链接:

    • 来自维基百科:

      有人声称,IEEE 754中包含有符号零使得在一些关键问题[1]中更容易获得数值精度,特别是在使用复杂的初等函数进行计算[2]时

      第一个参考文献是W.Kahan的“复杂初等函数的分支切割或无事生非的符号位”,可供下载


      那篇论文中的一个例子是
      1/(+0)
      vs
      1/(-0)
      。在这里,零的符号产生了巨大的差异,因为第一个表达式等于
      +inf
      ,第二个表达式等于
      -inf
      ,我只能看到两个实际用例:

    • 您希望显示一个值是负数,但非常小(可能是无穷小),即太小而无法表示为浮点或双精度
    • 您使用的数学只允许负片,但仍然希望显示零。在物理学、复数和数论中,有一些例子是有用的
    • 对于大多数人来说,这是没有用的,应该避免

      您可能还想看一看这个问题:以及浮点值。

      此外 签署零货物:

      零可以看作是扩展实数行的一种变体,因此1/−0 = −∞ 和1/+0=+∞, 除零仅在±0/±0时未定义


      负符号零与数学分析概念相呼应,即从下方接近0作为单边极限,可以用x表示→ 0−, x→ 0−, 或x→ ↑0“符号”−0”可非正式地用于表示已四舍五入为零的小负数。负零的概念在统计力学和其他学科中也有一些理论应用

      我正在制作一个测量应用程序,-0对于混合数字(例如分为英尺和英寸)非常有用

      假设我们有一个可变的“长度”,我们试图将其分为“英尺”和“英寸”

      (这是java代码,但对于C++也是如此)


      如果长度在-1英尺到0英尺之间,我们希望它对英尺来说是-0,这样我们就知道它是负数。

      我想知道,如果有三个零:正数、负数和无符号,减去两个负数,或者加上两个符号相反、大小相等的数,得到一个无符号的零,会有帮助吗?被有符号零除应产生无穷大,但被无符号零除应产生NaN。尽管这并不能解释有符号零在编程语言中的用途。
      feet = Math.signum(length) * Math.floor(Math.abs(length / 12));
      // could also do feet = length>0 ? Math.floor(length / 12) : Math.ceil(length / 12)
      inches = Math.abs(length) % 12;