问题标签 [single-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.
python - python中的整数到单精度转换
我不知道如何使用 python 将整数转换为单精度,我已经尝试使用 numpy 但 float32() 函数没有帮助。
例如 984761996 -> 1.360135E-3
python - Numpy 标量上的二进制操作自动向上转换为 float64
我想在 np.float32 和内置 Python int 和 float 之间进行二进制操作(如加法和乘法),并得到一个 np.float32 作为返回类型。但是,它会自动向上转换为 np.float64。
示例代码:
如果我使用 np.float128 执行此操作,b 也会变成 np.float128。这很好,因为它因此保持了精度。但是,在我的示例中,不需要向上转换到 np.float64 来保持精度,但它仍然会发生。如果我将 2.0(一个 Python 浮点数(64 位))添加到 a 而不是 2,那么强制转换将是有意义的。但即使在这里,我也不想要它。
所以我的问题是:在将二元运算符应用于 np.float32 和内置 Python int/float 时,如何更改已完成的转换?或者,将单精度作为所有计算的标准而不是双精度,也可以算作一种解决方案,因为我不需要双精度。其他人问过这个,似乎没有找到解决方案。
我知道numpy数组和dtypes。在这里,我得到了想要的行为,因为数组始终保留其 dtype。然而,当我对数组的单个元素进行操作时,我得到了不需要的行为。我对解决方案有一个模糊的想法,涉及子类化 np.ndarray(或 np.float32)并更改 __array_priority__ 的值。到目前为止,我还无法让它工作。
我为什么在乎?我正在尝试使用 Numba 编写一个 n-body 代码。这就是为什么我不能简单地对整个数组进行操作。将所有 np.float64 更改为 np.float32 可使速度提高约 2 倍,这很重要。np.float64-casting 行为完全破坏了这种速度,因为我的 np.float32 数组上的所有操作都以 64 精度完成,然后向下转换为 32 精度。
floating-point - Mips 单到双浮点精度
我在 mips 中有这个程序,我不想把它改成双精度。看起来单精度和双精度浮点指令具有相同的指令,但不是 .s 它是 .d 如果有人有意见或帮助,它将对我有很大帮助。
vba - 在 VBA 中将 2 个单精度数字彼此分开时的奇怪结果
谁能解释一下为什么下面的结果不等于零?
第一行返回 0.1998819 第二行也返回 0.1998819 但第三行返回 4.470348E-08
如果两个数字在单精度数据类型中完全由相同的值表示,那么这个数字是从哪里来的。
assembly - 使用 AVR-Assembler 添加两个 32 位浮点数
我正在尝试使用 AVR Studio 将两个 32 位浮点数相加。我知道我需要将 32 位数字存储在 4 个单独的 8 位寄存器中。然后我需要使用进位标志将寄存器添加在一起。这就是我到目前为止所拥有的。我添加了 5.124323 和 2.2134523。
这似乎没有给我正确的答案......我很确定这里唯一的错误是最后 4 行代码中寄存器的顺序。或者 add / adc 函数也可能是错误的。有人可以帮我解决这个问题吗?
floating-point - 大整数到单点浮点数
我试图将一个大整数转换为 32 位单精度浮点数,但我无法解决我遇到的这个问题。如果大整数的二进制表示大于 23 位尾数怎么办。
例如,取整数 1,671,277,287
其二进制表示为 01100011100111011010101011100111
我的理解是,您将小数位向左移动,直到它的左侧只有 1 位,如下所示:
01.100011100111011010101011100111
我的问题是这个尾数是 30 位,单精度浮点数只有 23 位尾数的空间。我试图寻找这个特定的问题,但我没有找到任何东西。我将如何解决这个问题?
编辑:找出一些信息,以防其他人有这个问题。单精度浮点的默认舍入是“四舍五入到最接近,与偶数相关”。另一个 StackOverflow 评论了如何轻松地做到这一点。
r - 将单精度浮点数写入R中的文件?
我知道 R 没有单精度浮点格式。但是,我正在将大量数据点从 R 写入文件,并且我想将它们存储为单精度浮点数,而不是双精度浮点数。我不需要这些数字的准确度。
我有什么办法可以做到吗?我想尽可能多地节省空间,甚至压缩或转储为二进制文件是不够的。
编辑:有没有办法将 .rds 文件写为单精度浮点数?
谢谢!
c# - 遍历 [1,2) 之间的单精度浮点数
我正在开发一个程序,该程序需要我遍历 [1,2) 范围内的所有单精度浮点(23 小数位)数字。我不太确定该怎么做。我正在用 C# 编写这个程序。
如果有人可以在这方面给我一些帮助,那就太棒了。谢谢!
octave - 从单精度中减去双精度给我 0。不是我想要的
我正在尝试使用 Octave 检查与 sin(x) 相关的舍入误差,我得到这些数字:
应该是:-1.8718784 × 10^-8
我输入:format long
但它仍然给我零,我不知道如何获得实际答案。
floating-point - 如何将大数(例如 1.23e29)转换为 IEE 754 单精度浮点格式?
我通过这里学习了如何从十进制转换为 IEEE 754 ,但我不知道如何转换一个非常大的数字,而不必通过帖子中解释的方法将其全部除。
例如,我必须将 -1.5845632e29 转换为 IEEE 754 单精度浮点,有没有比获取这个大数的 log base 2 更简单的方法?