Требуется ли преобразование типа VARIANT для расчетов? - PullRequest
0 голосов
/ 10 февраля 2012

Я пытаюсь преобразовать сценарий VB6 в сценарий C ++.Выход нового скрипта не совпадает со старым скриптом.Но после многих испытаний я начинаю задумываться, равны ли результаты.

Старый скрипт VB начинается с массива значений типа double, а затем вызывает функцию, в которой массивы передаются по ссылке.Эта функция имеет заголовок с массивом вариантов вместо двойных типов.Я проверил данные перед входом в метод, и к этому моменту вход равен.Затем этот метод выполняет некоторые вычисления с данными в этих массивах, и выходные данные больше не совпадают.Если я выписываю данные сразу после ввода метода, я уже вижу другие данные в старом скрипте.

В моем новом скрипте я делаю те же вычисления, но ввод после ввода метода остается таким же, как он был передан в метод.

Теперь у меня вопрос, что, если я на 100% уверен, что расчеты верны, результат может быть одинаковым.Чтобы они просто были представлены в другом формате?

Заранее спасибо, и мои извинения за мои навыки письма.Мой родной язык нидерландский, поэтому ...

Newscript:

double * reeel = new double[NFFT];      //Declaration           
double * imag = new double[NFFT];

FastDiscreteFourier::forwardTransForm(reeel,imag,NFFT); //Method call

void forwardTransForm(double * reeel, double * imag, int size); //Header

Oldscript:

ReDim real(NFFT - 1) As Double, imag(NFFT - 1) As Double //Declaration

FourierTransform real, imag, NFFT //Method Call

Public Sub FourierTransform(real As Variant, imag As Variant, arraysize As Long)
...