-2

VSTiプラグインを書いていますが、出力エンベロープの一部を計算する係数が必要です。

基本的に私は数式に対して間違った答えを受け取っています、私はそれをいくつかのステップに単純化しました、そしてそれはまだ間違っています。同じ式は電卓でも機能しますが、コードに変換しても機能しません。私はデバッガーを使用して変数の内容をチェックしてきましたが、0.25 / 88200の結果は、0.00000283446712ではなく2.8344671201814060e-006であることがわかりました。コードの前半で同様の計算が期待どおりに機能します。

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

関連するすべての変数はdouble型であり、変数ではなく数値(上記のように)として入力したこともありますが、それでも間違った答えが返されます。

なぜこれが起こっているのかについて誰かが光を当て、試すべきことや解決策についていくつかのアイデアを提供できますか?

必要に応じて、コンテキスト内でコードを追加できます。乾杯

ベン

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 に答える