可为null的十进制到带3个零的十进制';s之后
本文关键字:十进制 之后 3个 null 可为 | 更新日期: 2023-09-27 18:27:38
如何将可为null的小数转换为小数点后3个零的小数。
例如:立方-->十进制?(数据类型)--sql server为该属性提供值5324。在我的视图模型中,我有
decimal cdb
在我的databuilder类中,我正在将其转换为
cbd=cubed??0.
因此cbd=5324但是我想要
cbd=5324.000
我怎么能得到这个。?
如果我写这个代码:
decimal? cubed = 5324m;
decimal cdb = cubed ?? 0.000m;
Console.WriteLine(cdb);
我将5324
写入控制台。
如果我把它改成这个:
decimal? cubed = null;
decimal cdb = cubed ?? 0.000m;
Console.WriteLine(cdb);
我得到0.000
。小数点"记住"小数点后有多少个零。
我运行这两条线路:
Console.WriteLine(String.Join(":", decimal.GetBits(5324m).Select(x => x.ToString())));
Console.WriteLine(String.Join(":", decimal.GetBits(5324.000m).Select(x => x.ToString())));
我把这些拿出来:
5324:0:0:0
5324000:0:0:196608
因此,要获得具有三个零小数点的内部表示形式返回的值,可以执行以下操作:
decimal? cubed = 5324m;
decimal cdb = cubed ?? 0m;
int[] bits = decimal.GetBits(cdb);
cdb = new decimal(new [] { bits[0] * 1000, 0, 0, 196608});
Console.WriteLine(cdb);
这给了我:
5324.000
此代码适用于从0m
到4294967m
的值。如果您需要它为该范围之外的值工作,则需要对bits
值进行更多的工作。