MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

pilote c# mongodb comment convertir une double valeur mongo en décimale c#

La meilleure option serait probablement d'aller avec ceci :

monto = document["monto"].ToDecimal();

La raison pour laquelle cela fonctionne si bien est que l'abstrait BsonValue type implémente une méthode qui ressemble à ceci :

public virtual decimal ToDecimal()

Les implémentations concrètes de BsonValue (par exemple BsonInt32 , BsonInt64 , BsonDouble etc.) remplacez ce membre par la méthode ci-dessous qui vous donne précisément ce que vous voulez, peu importe si le pilote désérialise un int, un long ou un double à partir d'un document stocké :

public override decimal ToDecimal()
{
    return (decimal)_value;
}

Alternativement, dans votre cas spécifique (et si tous les documents concernés ont un int stocké dans leur champ "monto"), vous pouvez simplement écrire :

monto = Convert.ToDecimal(document["monto"].AsInt32)

ou même simplement

monto = (decimal)(document["monto"].AsInt32)

qui sont sémantiquement identiques.