- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在Double.PositiveInfinity文档是这样写的:
This constant is returned when the result of an operation is greater than MaxValue.
但是,当我尝试将一个数字添加到 double
的最大值时,它不会返回 infinity
。我试过运行这个:
double maxVal = Double.MaxValue;
maxVal = maxVal + 10000000000000000000;
Console.WriteLine(maxVal + " " + Double.IsInfinity(maxVal)); //prints 1.79769313486232E+308 False
为什么会这样?为什么它不将 maxVal
显示为 infinity
?
最佳答案
那是因为您要添加的数字方式太小而无法在 Double.MaxValue
上产生影响值(value)。
double
的精度大约是 15 位数字,因此您需要一个至少为 1e292
的数字使其足够大以产生影响。
那就是 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
写出来了。
关于c# - 为什么不向 Double.MaxValue 添加数字使其成为 Double.PositiveInfinity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29263015/
我在 C# 中遇到了以下非常奇怪的产品。下面的测试通过。 public void InfinityTimesITest() { Complex infinity = new Complex(dou
我查了很多关于这个问题的问题,但还没有找到解决方案。希望这不是一个重复的问题。 问题 如果我执行以下任一操作: INSERT INTO `Numbers`(`Number`) VALUES ('NaN
我在 VS2015 C# 交互中运行了以下代码片段,得到了一些非常奇怪的行为。 > double divide(double a, double b) . { . try . { .
在Double.PositiveInfinity文档是这样写的: This constant is returned when the result of an operation is greate
我们什么时候需要使用 Infinity 值,请添加一个真实世界的样本(如果可用)。 最佳答案 例如,负无穷大是空列表的自然最大值。有了这个,你有:max(l1 + l2) = max(max(l1),
我有一些代码返回 float::PositiveInfinity 以指示事件永远不会发生,但由于某种原因,编译器(MS Visual Studio 2013)给了我以下警告: warning C475
在 .Net 4 中,Double.PositiveInfinity 返回 ∞ 有没有显示“无限”的方法 using System; public class Program { public
在 Win7 中,当我将属性设置为 double.PositiveInfinity 时,文本框显示“Infinity”。在 Win10 中它显示无穷大符号 ( http://www.fileforma
在C#中,如果您0/0,您会得到一个异常。 但是如果你0.0/0 或0.0/0.0 你得到double.NaN 和double.Infinity , 分别。 但是如果将这些结果转换为 int,您将得到
我是一名优秀的程序员,十分优秀!