问题标签 [floating-point-conversion]

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.

0 投票
2 回答
3373 浏览

c - C/C++ - 将 32 位浮点值转换为 24 位标准化定点值?

请让我知道如何将 32 位浮点数转换为 24 位标准化值?我尝试的是 (units * (1 <<24) 但似乎不起作用。请帮我解决这个问题。谢谢。

0 投票
2 回答
458 浏览

c - Max Float Fraction

  • Platform: Linux 3.2.0 (Debian 7.0)
  • Compiler: GCC 4.7.2 (Debian 4.7.2-5)

I am trying to convert character strings into floats. I am aware that there are already functions that do this. I am only doing this for practice. My function works well with simple numbers like 123.123, 1234, -678.8. But when I try to convert the string .99999999 into a float I end up with 1. Which is obviously a problem. I do not know if this is because .99999999 cannot be expressed by a float or if I am doing something incorrectly. The question I am asking is how can I calculate the maximum fraction that a float can express. How do I, for lack of a better term, know when a float is about to overflow?

Here is what I have so far.

Also cstrtof() is based on the following function.

0 投票
2 回答
5844 浏览

c - 了解 if() 中的浮点变量比较

无法找到以下代码的原因:

输出为假。

现在显示正确的输出。这背后的原因是什么?

还有这种行为的原因是什么。

0 投票
2 回答
482 浏览

c - 浮点读为双精度

我的代码看起来像

我收到以下编译错误“警告:格式 %f 需要 'float *' 类型的参数,但参数“x”的类型为 double”

其中 x 是数字之一,scanf 命令中的所有 6 个参数都会发生这种情况,我已将所有变量指定为浮点数,但它不喜欢这样。

我该如何解决?谢谢!

0 投票
6 回答
4713 浏览

c - 为什么浮动不起作用?

在我的代码中,输出是 2.000000 而它应该是 2.11111

为什么它不工作?

0 投票
3 回答
3668 浏览

floating-point - 将带符号的 IEEE 754 浮点数转换为十六进制表示

我使用的是 Lua 的前端,不幸的是它已经过时了,所以我在这里坚持使用 5.1 版,这意味着bit32库无法访问(我可能可以用来转换它)。

所以我想知道是否有人知道我可以实现浮点到二进制(数字)函数或者更好的是浮点到十六进制的方法。到目前为止,我能想到的最好的方法是十进制到二进制/十六进制函数......

0 投票
3 回答
8922 浏览

c - 在 Lua 中,#INF 和 #IND 是什么?

我对Lua相当陌生。在测试时我发现#INF/ #IND。但是,我找不到解释它的好参考。

什么是#INF#IND和类似的(例如底片)以及如何生成和使用它们?

0 投票
1 回答
1009 浏览

c++ - 为什么 IEEE-754 浮点不能在平台之间交换?

已经断言(即使考虑字节字节序)IEEE754浮点不能保证在平台之间可交换。

所以:

  • 为什么从理论上讲,IEEE 浮点数不能在平台之间交换?
  • 这些问题是否适用于现代硬件平台(例如 i686、x64、arm)?

如果问题是有效的,您能否举例说明这种情况(首选 C 或 C++)?


动机:一些GPS 制造商将其二进制格式交换为(例如)“符合 IEEE-754 的浮点值”中的纬度、经度和原始数据。因此,我无法控制选择文本格式或其他“便携式”格式。因此,我的问题必须是何时可能会或可能不会发生差异。

0 投票
1 回答
89 浏览

vb.net - 获取单个常量与运行时相同

我尝试了等效的Michael Meadows EDIT 2,但在 VB.NET 中得到了不同的结果。(具体来说,DoubleDecimal结果都是 600000.0238418580。)

我已经确定差异在于Single存储到 a 中的除法的编译时准确性Single以及当您强制除法在运行时发生时。

因此,THREE_FIFTHSvTHREE_FIFTHSasDecimal求和提供不同的结果:

突出显示差异的结果是:

Three Fifths: 0.6000000000
Six Hundred Thousand: 600000.0000000000
Single: 599093.4000000000
Double: 600000.0238418580
Decimal: 600000.0238418580
vThree Fifths: 0.6000000000
Six Hundred Thousand: 600000.0000000000
Single: 599093.4000000000
Double: 600000.0238418580
Decimal: 600000.0000000000

我的问题是,你能让 VB.NET 得到一个Const Single与运行时结果等效的表达式吗?(即产生THREE_FIFTHS与 相同的结果vTHREE_FIFTHS。)

0 投票
2 回答
233 浏览

c# - 获取浮点常量与运行时结果(和 VB.NET)相同

我尝试了等效的Michael Meadows EDIT 2,但在 VB.NET 中得到了不同的结果。(具体来说,DoubleDecimal结果都是 600000.0238418580。)

我已经确定区别在于存储到 C# 中的float( Single) 除法的编译时准确性float(这似乎更等同于 VB.NET 在存储到 a 时的准确性Double)以及发生的情况(在两种语言中都不足为奇)当您强制除法在运行时发生。

因此,THREE_FIFTHSvTHREE_FIFTHSasDouble求和提供不同的结果:

突出显示差异的结果是:

Three Fifths: 0.6000000000
Six Hundred Thousand: 600000.0000000000
Single: 599093.4000000000
Double: 599999.9999886850
Decimal: 600000.0000000000
vThree Fifths: 0.6000000000
Six Hundred Thousand: 600000.0000000000
Single: 599093.4000000000
Double: 600000.0238418580
Decimal: 600000.0000000000

我的问题是,您能否让 C# 获得const float与运行时(和 VB.NET)结果等效的表达式?(即产生THREE_FIFTHS与 相同的结果vTHREE_FIFTHS。)