Por exemplo, existe um operador para lidar com isso?
float Result, Number1, Number2;
Number1 = 2;
Number2 = 2;
Result = Number1 (operator) Number2;
No passado, o ^
operador serviu como operador exponencial em outros idiomas, mas em C # é um operador em termos de bits.
Preciso escrever um loop ou incluir outro espaço para nome para lidar com operações exponenciais? Em caso afirmativo, como lidar com operações exponenciais usando não-inteiros?
c#
operators
arithmetic-expressions
exponent
Charlie
fonte
fonte
**
como operador de exponenciação de infixos.Respostas:
A linguagem C # não possui um operador de energia . No entanto, o .NET Framework oferece o método Math.Pow :
Portanto, seu exemplo seria assim:
fonte
Eu tropecei neste post procurando usar notação científica no meu código, eu usei
Mas depois eu descobri que você pode fazer
Apenas pensei em adicionar isso para qualquer pessoa em uma situação semelhante à que eu estivesse.
fonte
Há uma postagem de blog no MSDN sobre por que um operador de expoente NÃO existe da equipe de C #.
Você perguntou:
Math.Pow suporta parâmetros duplos, para que você não precise escrever seus próprios.
fonte
A falta de um operador exponencial para C # foi um grande aborrecimento para nós, quando procuramos um novo idioma para converter nosso software de cálculo do bom e velho vb6.
Fico feliz por termos escolhido C #, mas isso ainda me incomoda sempre que estou escrevendo uma equação complexa, incluindo expoentes. O método Math.Pow () torna as equações bastante difíceis de ler IMO.
Nossa solução foi criar uma classe DoubleX especial em que substituímos o operador ^ (veja abaixo)
Isso funciona razoavelmente, desde que você declare pelo menos uma das variáveis como DoubleX:
ou use um conversor explícito em duplos padrão:
Um problema com esse método, porém, é que o expoente é calculado na ordem errada em comparação com outros operadores. Isso pode ser evitado sempre colocando um extra () em torno da operação, o que novamente torna um pouco mais difícil a leitura das equações:
Espero que isso ajude outras pessoas que usam muitas equações complexas em seu código, e talvez alguém até tenha uma idéia de como melhorar esse método ?! :-)
Classe DoubleX:
fonte
Estou surpreso que ninguém tenha mencionado isso, mas para o caso simples (e provavelmente o mais encontrado) de quadratura, você apenas se multiplica.
fonte
Math.Pow
. Eu estava apenas oferecendo uma solução óbvia para o caso mais comum.Math.Pow(Number1, 2)
Como ninguém ainda escreveu uma função para fazer isso com dois números inteiros, aqui está uma maneira:
Como alternativa no VB.NET:
fonte
Uma boa função de potência seria
A função `Math.Pow` usa a função de energia do processador e é altamente mais eficiente.
fonte
Pelo que vale a pena, sinto falta do operador ^ ao elevar uma potência de 2 para definir uma constante binária. Não é possível usar Math.Pow () lá, mas mudar um int não assinado de 1 para a esquerda pelo valor do expoente funciona. Quando eu precisava definir uma constante de (2 ^ 24) -1:
Lembre-se de que os tipos devem ser (uint) << (int).
fonte