sql >> Base de Datos >  >> NoSQL >> MongoDB

controlador c# mongodb cómo convertir un valor doble mongo a uno decimal c#

La mejor opción probablemente sería ir con esto:

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

La razón por la que esto funciona tan bien es que el resumen BsonValue type implementa un método que se ve así:

public virtual decimal ToDecimal()

Las implementaciones concretas de BsonValue (por ejemplo, BsonInt32 , BsonInt64 , BsonDouble etc.) invalide este miembro con el siguiente método que le brinda exactamente lo que desea, sin importar si el controlador deserializa un int, long o double de un documento almacenado:

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

Alternativamente, en su caso específico (y si todos los documentos en el alcance tienen un int almacenado en su campo "monto"), simplemente puede escribir:

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

o incluso solo

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

que son semánticamente idénticos.