Maison >développement back-end >C++ >Pourquoi la conversion implicite échoue-t-elle lors de l'attribution d'une décimale à un double en C# ?

Pourquoi la conversion implicite échoue-t-elle lors de l'attribution d'une décimale à un double en C# ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-25 07:02:44873parcourir

Why Does Implicit Conversion Fail When Assigning a Decimal to a Double in C#?

Conversion implicite de décimal en double en C#

Lors de la tentative d'affectation d'une variable décimale à une variable double, comme le montre l'extrait de code ci-dessous, une erreur de compilation peut survenir :

decimal trans = trackBar1.Value / 5000;
this.Opacity = trans;

Le message d'erreur indique généralement un échec de conversion implicite d'un type décimal en type double.

Pour résoudre ce problème, une conversion explicite en double peut être utilisée :

double trans = (double) trackBar1.Value / 5000.0;
this.Opacity = trans;

Alternativement, la constante peut être explicitement identifiée comme un double à l'aide du suffixe .0 :

double trans = trackBar1.Value / 5000.0;

Une autre option consiste à utiliser le suffixe d pour spécifier un double :

double trans = trackBar1.Value / 5000d;

En identifiant explicitement la constante comme un double, le compilateur peut effectuer la conversion correctement sans nécessiter de conversion explicite.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn