由于MongoDB没有Decimal类型,我们要将C#的Decimal类型数据存入MongoDB,只能转换为Double类型存储。
但是,取出来的数据(原数据为0.12345)可能是类似0.1234499999999的形式,ToString("f4")转化string值为0.1234,正确值应为0.1235。
解决方法:
先还原Double类型后值为0.12345,再做四舍五入。
private static string Decimal2String(decimal dec)
{
return dec == 0 ? "0" : ((double)dec).ToString("f4");
}