问题标签 [floating-point-precision]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 将 int 类型转换为 float 会将 DivideByZeroException 转换为 Infinity
divide
我用 C#写了一个简单的函数:
MessageBox.Show(divide(3, 0))
如您所料,调用结果为DivideByZeroException
.
所以我决定将类型转换a
为浮点数(以获得非整数返回值),如下所示:
奇怪的是,这现在向我显示Result: Infinity。
尽管我可能弄错了,但这对我来说似乎是一个错误。是因为结果现在是一个浮点数,它本质上被视为返回值3 / 1 x 10^-99999
或类似的东西吗?
我对这个结果感到非常震惊。
ruby - Ruby - 乘法问题
我的输出是这样的 -
我记得有时回到另一台机器上,我得到了它......2.32 * 3 = 6
我的错误是什么?非常感谢您阅读本文。:)
floating-point - 添加 32 位浮点数。
我学到的东西比我想知道的浮点数还要多。
可以说我需要添加:
1 10000000 00000000000000000000000
1 01111000 11111000000000000000000
2 的补码形式。
第一位是符号,接下来的 8 位是指数,最后 23 位是尾数。
在不转换为科学计数法的情况下,如何将这两个数字相加?你能一步一步走过来吗?
这东西有什么好的资源吗?视频和练习示例会很棒。
floating-point - 机器精度估计
有人说双精度浮点数的机器 epsilon 是 2^-53,而其他人(更常见)说它的 2^-52。我已经搞砸了使用除 1 之外的整数和从上方和下方接近(在 matlab 中)来估计机器精度,并且得到了两个值作为结果。为什么在实践中可以观察到这两个值?我认为它应该总是在 2^-52 左右产生一个 epsilon。
ruby - 为什么在 Float 上调用 to_i 会从值中减去 1?
我有一个案例,我在 Float 对象上做一些数学运算,当我在它上面调用 to_i 时,它被减少了一个。
我知道浮点数是不精确的表示,但这超出了我的预期。发生了什么事,我该如何预防?
我正在使用 ruby 1.8.7(它也发生在 1.8.6 中)。
c# - Visual Studio 2010 的精度问题
我有一个用 Microsoft Visual C++ 6.0 编写的应用程序。现在我使用 C# 在 Visual Studio 2010 中重写了应用程序,但由于精度问题,结果不匹配。以下是此类精度问题之一。
这是在 Visual Studio 2010 中运行时的 C# 代码给出的c
值 =0.333333343
但是相同的代码,在值定义中的值之后删除 f,当在 Visual C++ 6.0 上运行时,会给出 c value = 0.333333
。
任何人都可以对其进行整理并解释在 Visual Studio 和 Visual C++ 6.0 中为 c 具有相同值的方法吗?
实际上这些值是从监视窗口中获取的。我开始知道不同版本的视觉工作室可能在浮点格式表示上有所不同。因此 watch 中的值可能没有用。这就是为什么我在两个 Visual Studio 版本中都打印了这些值的原因,结果如下。使用 Visual Studio 6.0 使用 Visual C++ 语言,它是 0.333333(六个 3)
但使用 C# 语言的 Visual Studio 10 为 0.3333333(七个 3)
那么任何人都可以帮助我让我的 C# 程序产生与 Visual C++ 相同的结果吗???(即如何进行浮动操作以在两个版本上产生相同的结果???)
c++ - double 的精确二进制表示
可能重复:
在 C++ 中浮点到二进制
我有一个非常小的双变量,当我打印它时我得到-0。(使用 C++)。现在为了获得更好的精度,我尝试使用
但它只写-0.00000000000 ...
我想查看 var 的确切二进制表示。
换句话说,我想看看这个变量的堆栈内存/寄存器中写入了什么二进制数。
c++ - 浮点数末尾的点是否表明缺乏精度?
当我通过步进代码在 VS C++ 中调试我的软件时,我注意到一些浮点计算显示为一个带有尾随点的数字,即:
导致此结果的一项操作是:
其中 a 是一个很大的负数,大约 -50 到 -100,b 通常在 1 左右。我阅读了一些关于浮点数精度问题的文章。我的问题是,如果尾随点是 Visual-Studio 的一种方式,它告诉我这个数字的精度非常低,即在变量结果中。如果不是,那是什么意思?
这出现在今天的工作中,我记得较大的数字存在问题,所以每次都会发生这种情况(“这个”是指尾随点)。但我确实记得它发生在数字中有七位数字时。在这里,他们认为浮点数的精度是七位数:
这可能是事情吗,Visual Studio 通过在最后加一个点来告诉我这一点?
我想我找到了!它说“尾数被指定为数字序列,后跟一个句点”。尾数是什么意思?这在 PC 上和在 DSP 上运行代码时会有所不同吗?因为问题是我得到了不同的结果,唯一让我觉得奇怪的是这个时期的东西,因为我不知道这意味着什么。
http://msdn.microsoft.com/en-us/library/tfh6f0w2(v=vs.71).aspx
ruby - 如何在红宝石中从 0.0001 数到 1?
我想在 ruby 中用 0.0001 步从 0.0001 数到 1。我写了这段代码,但它进入了一个无限循环。不知何故,解释器做了错误的总结。
这是它给出的前 10 个值:
它应该是 0.0001、0.0002、0.0003 等......我怎样才能让它工作?谢谢!
sql-server - SQL Server 内置函数 Stdevp 计算不正确
我正在使用 SQL Server 2008,我的要求之一是计算总体标准差。SQL Server 提供了相同的内置函数stdevp
。我正在使用它,但我对我得到的结果感到困惑。一组相同数字的总体标准偏差应该为零,但在这里我得到了一些不同的值,尽管值很小。
以下是 stdevp 查询:
我得到的结果是
应该是 0.00。
的文档stdevp
说它返回一个浮点数。所以我猜这一定是一个四舍五入的问题,但我无法找到解决方案。