Я пытаюсь скопировать формулу с листа Excel на страницу ASP, но скопировав формулу, я получаю разные результаты (на самом деле ошибка, потому что ASP пытается получить квадратный корень из отрицательного числа) .
Конечно, Excel обрабатывает приоритет оператора так же, как классический ASP?
Формула, которую я пытаюсь воспроизвести, является простым «T-тестом» (чтобы сообщить о статистической значимости - я не создал формулу) и работает правильно в Excel. В Excel ячейки выглядят как
A2 = 1098
B2 = 183
A4 = 20.4
B4 = 17.49
И ячейка E4 содержит эту формулу:
=(A4-B4)/SQRT(((($A$2*A4)+($B$2*B4))/($A$2+$B$2))*
(1-((($A$2*A4)+($B$2*B4))/($A$2+$B$2)))*((1/$A$2)+(1/$B$2)))
Итак, я просто скопировал / вставил эту формулу в классический ASP, удалил все $ и изменил SQRT на SQR, объявил 4 переменные A2, B2, A4, B4. Это возвращает ошибку (неверный вызов процедуры).
Если я удаляю первую часть формулы - (A4-B4) / SQRT - в ASP код возвращает -2.41868099141296, а в Excel - 0,001019435.
Я пробовал и пытался сначала вычислить отдельные части формулы, а затем собрать все вместе, готовый выполнить SQRT, но продолжаю сталкиваться с тем же.
Это просто глупая ошибка? В какой-то момент я изучал квадратные корни отрицательных чисел, пока не попробовал = SQRT (-9) в Excel
Я использую ASP-код (я вставил разрыв строки в первую и последнюю строку):
A2 = cdbl(1098.0)
A4 = cdbl(20.4)
B2 = cdbl(183.0)
B4 =cdbl(17.49)
' Remove all the $, and (A4-B4)/SQRT part
response.write "<p>Result: " & ((((A2*A4)+(B2*B4))/(A2+B2))*(1-(((A2*A4)+(B2*B4))
/(A2+B2)))*((1/A2)+(1/B2))) & "</p>"`