Апфлоат вычисляет тригонометрическую функцию неверный результат - PullRequest
0 голосов
/ 27 октября 2018

Я разработчик на C # и у меня есть приложение UWP, которое может точно рассчитать многие математические проблемы с помощью пакета DecimalEx Nuget. Недавно я начал портировать свое приложение на Java и Android, и я использую Apfloat в качестве альтернативы (если есть лучший, пожалуйста, порекомендуйте меня). Я написал код для вычисления тригонометрических функций, но результат в 10 раз больше, чем фактический. Вот пример моего кода:

            Apfloat degrees = new Apfloat(new BigDecimal(textbox1.getText().toString()), 20);
            Apfloat sin  = ApfloatMath.sin(degrees);
            Apfloat cos = ApfloatMath.cos(degrees);
            Apfloat tg = ApfloatMath.tan(degrees);
            Apfloat cotg = new Apfloat(1).divide(tg);
            Apfloat sec = new Apfloat(1).divide(cos);
            Apfloat csc = new Apfloat(1).divide(sin);

Точность установлена ​​на 20. Вот скриншот, сравнивающий мой вывод на C # (точный справа) с выводом на Java.

enter image description here

Также я не знаю, как отобразить результат без научной записи.

Заранее спасибо. :)

1 Ответ

0 голосов
/ 28 октября 2018

Оказывается, это просто проблема с форматированием, найдено решение.

String.format("%#s", sin)

и т. Д .;)

...