可空十进制到十进制后有 3 个零
Nullable decimal to decimal with 3 zero's after
如何将可为空的小数转换为小数点后有 3 个零的小数。
例如:立方 --> 十进制? (数据类型)-- sql 服务器为此 属性 提供值 5324。在我的视图模型中,我有
decimal cdb
在我的数据生成器中 class 我正在将其转换为
cbd=cubed??0.
因此生物多样性公约=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
。小数 "remember" 小数点后有多少个零。
我运行这两行:
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
值进行更多工作。
如何将可为空的小数转换为小数点后有 3 个零的小数。
例如:立方 --> 十进制? (数据类型)-- sql 服务器为此 属性 提供值 5324。在我的视图模型中,我有
decimal cdb
在我的数据生成器中 class 我正在将其转换为
cbd=cubed??0.
因此生物多样性公约=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
。小数 "remember" 小数点后有多少个零。
我运行这两行:
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
值进行更多工作。