260 votes

Y a-t-il un opérateur d'exposant en C #?

Par exemple, un opérateur existe-t-il pour gérer cela?

 float Result, Number1, Number2;

Number1 = 2;
Number2 = 2;

Result = Number1 (operator) Number2;
 

Dans le passé, l'opérateur ^ a servi d'opérateur exponentiel dans d'autres langues, mais en C #, il s'agit d'un opérateur binaire.

Dois-je écrire une boucle ou inclure un autre espace de noms pour gérer des opérations exponentielles? Si tel est le cas, comment gérer des opérations exponentielles avec des nombres non entiers?

305voto

dtb Points 104373

Le langage C # n'a pas d'opérateur électrique . Cependant, le .NET Framework offre la méthode Math.Pow :

Renvoie un nombre spécifié élevé à la puissance spécifiée.

Donc, votre exemple ressemblerait à ceci:

 float Result, Number1, Number2;

Number1 = 2;
Number2 = 2;

Result = Math.Pow(Number1, Number2);
 

68voto

K'Leg Points 1672

Je suis tombé sur ce post cherchant à utiliser la notation scientifique dans mon code, j'ai utilisé

 4.95*Math.Pow(10,-10);
 

Mais après j'ai découvert que vous pouvez faire

 4.95E-10;
 

Je pensais juste que j'ajouterais ceci à toute personne se trouvant dans une situation similaire à celle dans laquelle j'étais.

38voto

Brian R. Bondy Points 141769

Il y a un post de blog sur MSDN sur pourquoi un exposant opérateur n'existe PAS à partir de l'équipe C#.

Il serait possible d'ajouter de la puissance opérateur de la langue, mais l'exécution de cette opération est assez rare chose à faire dans la plupart des programmes, et il ne semble pas justifié d'ajouter un l'opérateur lors de l'appel de Mathématiques.Pow() est simple.


Vous avez demandé:

Dois-je écrire une boucle ou d'inclure un autre espace de noms pour gérer exponentielle des opérations? Si oui, comment faire Je gère l'exponentielle opérations à l'aide de non-entiers?

Les mathématiques.Pow prend en charge double paramètres, donc il n'est pas nécessaire pour vous d'écrire votre propre.

1voto

ckuhn203 Points 1236

Je suis surpris que personne ne l'ait mentionné, mais pour le cas simple (et probablement le plus souvent rencontré) de quadrature, vous ne faites que multiplier par lui-même.

 float Result, Number1;

Result = Number1 * Number1;
 

-3voto

Siddharth Points 9

Pour l'ingénierie inverse

 public static string ArbitarySystemToString(string arbitaryString, int radix)
{
    if (radix < 2 || radix > Digits.Length)
        throw new ArgumentException("The radix must be >= 2 and <= " + Digits.Length.ToString());

    long Output = 0;
    int Counter = 0;
    while (arbitaryString.Length != 0)
    {
        char CurrentCharacter = arbitaryString[arbitaryString.Length - 1];
        Output = Output + (Digits.IndexOf(CurrentCharacter) * (long)(Math.Pow(radix, Counter)));
        arbitaryString = arbitaryString.Substring(0, arbitaryString.Length - 1);
        Counter = Counter + 1;
    }
    return Output.ToString();
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X