Например, существует ли оператор для обработки этого?
float Result, Number1, Number2;
Number1 = 2;
Number2 = 2;
Result = Number1 (operator) Number2;
В прошлом ^
оператор служил в качестве экспоненциального оператора в других языках, но в C # это побитовый оператор.
Нужно ли писать цикл или включать другое пространство имен для обработки экспоненциальных операций? Если да, то как мне обрабатывать экспоненциальные операции, используя нецелые числа?
**
в качестве оператора возведения в степень infix.Ответы:
В языке C # нет оператора power . Однако .NET Framework предлагает метод Math.Pow :
Итак, ваш пример будет выглядеть так:
источник
Я наткнулся на этот пост, пытаясь использовать научную нотацию в моем коде, я использовал
Но потом я узнал, что вы можете сделать
Просто подумал, что добавлю это для любого в подобной ситуации, в которой я был.
источник
В MSDN есть запись в блоге о том, почему оператор степени не существует из команды C #.
Ты спрашивал:
Math.Pow поддерживает двойные параметры, поэтому вам не нужно писать свои собственные.
источник
Отсутствие экспоненциального оператора для C # было большим раздражением для нас, когда мы искали новый язык для преобразования нашего программного обеспечения для вычислений из хорошего старого v6.
Я рад, что мы пошли с C #, но это все еще раздражает меня всякий раз, когда я пишу сложное уравнение, включая показатели. Метод Math.Pow () затрудняет чтение уравнений IMO.
Нашим решением было создать специальный класс DoubleX, в котором мы переопределяем оператор ^ (см. Ниже)
Это работает довольно хорошо, если вы объявите хотя бы одну из переменных как DoubleX:
или используйте явный конвертер для стандартных пар:
Одна из проблем этого метода заключается в том, что показатель степени вычисляется в неправильном порядке по сравнению с другими операторами. Этого можно избежать, всегда добавляя в операцию extra (), что снова затрудняет чтение уравнений:
Я надеюсь, что это может помочь другим, кто использует много сложных уравнений в своем коде, и, возможно, кто-то даже имеет представление о том, как улучшить этот метод ?! :-)
Класс DoubleX:
источник
Я удивлен, что никто не упомянул об этом, но для простого (и, вероятно, наиболее часто встречающегося) случая возведения в квадрат вы просто умножаете сами.
источник
Math.Pow
. Я просто предлагал очевидное решение для наиболее распространенного случая.Math.Pow(Number1, 2)
Так как никто еще не написал функцию для этого с двумя целыми числами, вот один из способов:
Альтернативно в VB.NET:
источник
Хорошая функция мощности будет
Функция `Math.Pow` использует функцию мощности процессора и является более эффективной.
источник
Для чего стоит пропустить оператор ^ при увеличении степени 2 для определения двоичной константы. Там нельзя использовать Math.Pow (), но смещение беззнакового целого числа 1 влево на значение показателя степени работает. Когда мне нужно было определить константу (2 ^ 24) -1:
Помните, что типы должны быть (uint) << (int).
источник