标签: infinity

这三个特殊的浮点值意味着什么:正无穷大,负无穷大,NaN?

我们如何在我们的代码中使用它们,以及什么会导致NaN(不是数字)?

java floating-point nan infinity

10
推荐指数
2
解决办法
2万
查看次数

表示无限和NAN独立于实现

在Common Lisp中是否存在表示无穷大或无数字(NAN)的实现独立方式?它需要是双浮点数,并且具有正值和负值.在SBCL,结果

(apropos "INFINITY")
Run Code Online (Sandbox Code Playgroud)

包括

SB-EXT:DOUBLE-FLOAT-NEGATIVE-INFINITY (bound)
SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY (bound)
Run Code Online (Sandbox Code Playgroud)

但我需要它在所有实现中都可用.我有一个编写包的附录,可以在所有平台上运行,它需要表示无限和NAN.即使是其他图书馆的功能也足够了.

iee-floats装了,现在它是我图书馆的一部分.我有一个功能,可以检测数字是否为NaN,以及检测数字是否为无穷大的函数; 我没有测试NaN,但是我的无限函数需要数字为双浮点数.SBCL的SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY作品,但我需要它独立于实现.

common-lisp infinity

10
推荐指数
2
解决办法
2538
查看次数

R:可以范围(data.frame)排除无限值吗?

我试图找到range具有无限值的数据框:

> f <- data.frame(x=c(1,2),y=c(3,Inf))
> range(f)
[1]   1 Inf
> range(f,finite=TRUE)
Error in FUN(X[[2L]], ...) : 
  only defined on a data frame with all numeric variables
Calls: Summary.data.frame -> lapply -> FUN
> range(f$y)
[1]   3 Inf
> range(f$y,finite=TRUE)
[1] 3 3
Run Code Online (Sandbox Code Playgroud)

为什么我收到错误?

我可以做得更好吗?

> do.call(range,lapply(f,range,finite=TRUE))
[1] 1 3
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?它知道了吗?我应该报告吗?

r range infinity

10
推荐指数
1
解决办法
455
查看次数

我们什么时候需要使用float.PositiveInfinity和float.NegativeInfinity?

我们什么时候需要使用Infinity值,如果可用的话,请添加一个真实的样本.

c# floating-point infinity

9
推荐指数
2
解决办法
4906
查看次数

Fortran中的无限

在Fortran中将变量设置为+ Infinity最安全的方法是什么?目前我正在使用:

program test
  implicit none
  print *,infinity()
contains
  real function infinity()
    implicit none
    real :: x
    x = huge(1.)
    infinity = x + x
  end function infinity
end program test
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法?

fortran infinity

9
推荐指数
1
解决办法
1万
查看次数

你如何在JSON API中表示无穷大?

在JSON API中表示无穷大的最佳方法是什么?例如,可以免费阅读本月的文章(对于某些订阅,这将是一个有限的数字,对于高级订阅,这将是无限的).

返回null此用例或扩展 JSON并使用javascript的Infinity值是一个更好的主意吗?后者似乎更合适,但我从未见过这样做的API的例子.

如果有人有任何代表无限的公共Web API的例子,那也很酷.

api json infinity

9
推荐指数
3
解决办法
2486
查看次数

可以通过非零划分仍然创建纳/无穷大

我有一个可能是零的数字.我除以那个数字,所以我想测试它是否为零以防止NaN和无穷大.由于分区内的舍入错误,我是否仍然可以创建NaNs /无穷大?

double x; // might be zero
double y;

if(x != 0) return y / x;
Run Code Online (Sandbox Code Playgroud)

编辑

谢谢你的回复.我会添加一些子问题.

1)假设x和y都不是NaN/+ INF或-INF,会导致-INF/+ INF导致更多的CPU周期或任何其他不希望的行为的分割?(会崩溃吗?)

2)有没有办法防止分裂导致无穷大?使用偏移等.

c++ nan division infinity

9
推荐指数
3
解决办法
675
查看次数

在for循环中使用Double.POSITIVE_INFINITY(Java)

以下代码将如何表现,尤其是当双计数器达到其极限时((2-2 ^ -52)·2 ^ 1023)?

for (double i = 0; i < Double.POSITIVE_INFINITY; i++){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

此代码是否会按预期运行(永远循环)或在某些时候失败,为什么?

谢谢.

java for-loop infinity

8
推荐指数
2
解决办法
548
查看次数

在Python 2.7中将无穷大表示为整数

我想知道如何定义inf-inf作为intPython 2.7.我想,似乎inf-inf只能作为一个工作float.

a = float('-inf') # works
b = float('inf') # works

c = int('-inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf'
d = int('inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf'
Run Code Online (Sandbox Code Playgroud)

python infinity python-2.7

8
推荐指数
1
解决办法
2万
查看次数

val!= std :: numeric_limits <double> :: infinity()或!isinf(val)或isfinite(val)

这可能是自行车脱落,但也许有一些有趣的东西让我失踪......

如果一个类初始化一个成员val,std::numeric_limits<double>::infinity()然后想要检查val是否已被更改为有效的东西(+/- inf在这里无效),这3种方法的权衡是什么,我是否错过任何其他有趣的方法来解决这个问题.(为了便于阅读,删除了const.)

bool IsInit() { return MinX != std::numeric_limits<double>::infinity(); }  // a

bool IsInit() { return !std::isinf(MinX); }  // b

bool IsInit() { return std::isfinite(MinX); }  // c
Run Code Online (Sandbox Code Playgroud)

现在代码是C++ 03,但是如何使用C++ 11,C++ 14和C++ 17来改变选项.例如,使用C++ 17,这段代码可能就是这样std::optional<double> val.或者安静NaN是一个更安全的赌注,只是因为+/- inf在未来变得有效?

当我在阅读此代码的补丁时出现了这个问题:

为便于参考:

相关类型:

c++ nan infinity numeric-limits c++11

8
推荐指数
1
解决办法
863
查看次数