-2
如何用小數點後3個零轉換可以將空的小數轉換爲小數。可空小數轉成小數後加3個零後
eg:cubed - > decimal? (數據類型) - sql服務器爲此屬性提供值5324。在我的視圖模型我有
decimal cdb
我databuilder類
我正在轉換這
cbd=cubed??0.
從而CBD = 5324 ,但我想
cbd=5324.000
我怎麼能得到這個?
如何用小數點後3個零轉換可以將空的小數轉換爲小數。可空小數轉成小數後加3個零後
eg:cubed - > decimal? (數據類型) - sql服務器爲此屬性提供值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
值。
'ToString(「0.000」)'? –
@SamiKuhmonen - 我認爲這個問題更多地涉及到'decimal'的內部工作,而不僅僅是能夠調用'.ToString(...)'。 – Enigmativity
@Enigmativity由於它在表示層上並不重要,在表示層上有多少十進制零,所以不清楚。 –