Повышение является, вероятно, лучшим выбором, однако если Вы желаете что-то, что это более автономно, и если это для использования с Windows (который кажется выполнимым, учитывая, что они - люди маловероятно для устанавливания Python), тогда можно использовать py2exe для создания DLL с точками входа, подходящими для COM-объектов. Можно тогда взаимодействовать через интерфейс с библиотекой через COM. (Очевидно, это нисколько не полезно как межплатформенное решение).
I'm pretty sure the "exact code" you give doesn't compile.
MessageBox.Show(Math.Pow(1.07,(1/3).toString()));
The call to toString is at the wrong nesting level, needs to be ToString, and (1/3) is integer division, which is probably the real problem you're having. (1/3) is 0 and anything to the zeroth power is 1. You need to use (1.0/3.0) or (1d/3d) or ...
Перво-наперво: если это именно тот код, который вы используете, вероятно, что-то не так с вашим компилятором: -)
MessageBox.Show(Math.Pow(1.07,(1/3).toString()));
сначала оценит (1/3) .toString (), а затем попробуйте возвести 1,07 в степень этой строки.
Я думаю, вы имеете в виду:
MessageBox.Show(Math.Pow(1.07,(1/3)).ToString());
Что касается проблемы, (1/3) рассматривается как целочисленное деление, возвращающее 0 и n 0 равно 1 для всех значений n.
Вам нужно принудительно перевести его в режим деления с плавающей запятой, например, 1.0 / 3.0
.
C # обрабатывает 1 и 3 как целые числа, вам нужно сделать следующее:
Math.Pow(1.07,(1d/3d))
или
Math.Pow(1.07,(1.0/3.0))
Это на самом деле интересно, потому что неявное расширяющее преобразование заставляет вас совершить ошибку.