Я пишу плагин VSTi, мне нужен коэффициент расчета для части выходного конверта.
В основном я получаю неправильный ответ на математическое выражение, я упростил его в несколько этапов, и он все еще неверен. То же выражение работает на калькуляторе, но оно не будет работать в коде. Я использую отладчик и проверяю содержимое переменных и обнаружил, что 0.25 / 88200 дает результат 2.8344671201814060e-006, а не 0.00000283446712, как и должно быть. Подобная математика ранее в коде функционирует, как и ожидалось.
currentDecCoeff = 0.25 / 88200;
is making currentDecCoeff = 2.8344671201814060e-006 (and not 0.00000283446712)
Все соответствующие переменные имеют двойной тип, я даже ввел его как числовые значения (как указано выше), а не как переменные, и он все равно дает неправильный ответ.
Может ли кто-нибудь пролить свет на то, почему это может происходить, и дать некоторые идеи о том, что можно попробовать, или даже о решении.
Я могу добавить код в контексте, если это необходимо.
ура
Бен
Запись e-006
значит умножить то, что от меня осталось, на 10 ^ (- 6). Так что, действительно, ваш результат верен.
Они одинаковы для 9 значащих цифр, посмотрите вверхнаучная нотация.
Чтобы уточнить, научная запись используется, чтобы показать очень маленькие (или очень большие) числа легко, удаляя начальные или конечные нули. Как правило, он имеет следующую форму:
y x 10^z
Чтобы получить значение, решите сумму. C показывает это как:
yEz
Таким образом, 2.4×10 ^ 6 (или 2.4E6) составляет 2400000.