-2

我正在编写一个 VSTi 插件,我需要计算部分输出包络的系数。

基本上我收到的数学表达式的答案不正确,我已将其简化为几个步骤,但仍然不正确。相同的表达式适用于计算器,但不能翻译成代码。我一直在使用调试器并检查变量的内容,发现 0.25 / 88200 给出的结果是 2.8344671201814060e-006 而不是 0.00000283446712 应该是这样。代码中前面的类似数学运算符合预期。

currentDecCoeff = 0.25 / 88200;
is making currentDecCoeff = 2.8344671201814060e-006 (and not 0.00000283446712)

所有相关变量都是双精度类型,我什至将其输入为数值(如上)而不是变量,它仍然给出错误的答案。

任何人都可以阐明为什么会发生这种情况,并提供一些关于尝试甚至解决方案的想法。

如果需要,我可以在上下文中添加代码。干杯

4

2 回答 2

2

它们对 9 位有效数字相同,请查阅科学记数法

详细地说,科学记数法用于通过删除前导零或尾随零轻松显示非常小(或非常大)的数字。通常,它具有以下形式:

y x 10^z

要获得值,请求解总和。C 显示为:

yEz

因此,2.4x10^6(或 2.4E6)是 2400000。

于 2013-01-27T18:47:30.987 回答
1

该符号e-006意味着将我剩下的乘以 10^(-6)。所以确实你的结果是正确的。

于 2013-01-27T18:48:11.237 回答