2017-02-19 27 views
0

Так что я пытаюсь сделать простой калькулятор для вычисления оценки wilks. Я не получаю правильный ответ, который, я уверен, потому, что я неправильно настраиваю формулу. Если я прохожу в весе 180, присед 300, скамья 300 и тяге 400 в фунтах я должен получать Уилкс из 305.78, но я получаю 2.0414858^-5Математическая формула не возвращает правильный ответ

Heres мой метод calcWilks

public double calcWilks(double weight, double squat, double bench, double deadLift) { 

    double a = -216.0475144; 
    double b = 16.2606339; 
    double c = -0.002388645; 
    double d = -0.00113732; 
    double e = Math.pow(7.01863, -6); 
    double f = Math.pow(-1.291, -8); 
    double x = weight; 
    double coeff; 
    double score; 

    coeff = 500/(a + (b*x) + (c* Math.pow(x, 2))+ (d* Math.pow(x, 3)) 
      + (e* Math.pow(x, 4)) + (f* Math.pow(x, 5))); 

    double total = squat + bench + deadLift; 
    score = coeff* total; 
    return score; 
} 

и Heres ссылка на фактическую formaula https://en.wikipedia.org/wiki/Wilks_Coefficient

Я пытаюсь использовать самец формулы

Спасибо за любую помощь!

+1

'Math.pow (7.01863, -6)! = 7.01863E-06'. –

+0

'' Math.pow (7.01863, -6); '' это не то же самое, что '' 7.01863E-06'' ... – f1sh

+0

Добро пожаловать в Stack Overflow! Похоже, вам нужно научиться использовать отладчик. Пожалуйста, помогите нам с некоторыми [дополнительными методами отладки] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Если у вас все еще есть проблемы после этого, пожалуйста, не забудьте вернуться с более подробной информацией. –

ответ

2

значение коэффициента в e на странице Википедии

7.01863E-06 

но вы использовали

Math.pow(7.01863, -6) 

Это не то же самое:

7.01863E-06 = 7.01863 * Math.pow(10, -6). 

Просто используйте значение 7.01863E-06 (или 7.01863e-6) напрямую.

(Те же проблемы с f)


Кроме того, отметим, что входные данные для формулы должны быть в килограммах; не в фунтах, как вы заявляете в вопросе.

+0

ugh спасибо, что это была глупая ошибка. Я думаю, что у меня все еще есть проблема где-то еще, теперь я получаю 538.8456, но это должно быть 305.78 – zsh5032