[英]Restricting the number of digits after decimal
為了限制小數點后的位數,我在網頁中執行以下操作。
Single nnuma = Convert.ToSingle(dr["num1"].ToString());
Single numb = Convert.ToSingle(dr["num2"].ToString());
我必須將小數點后的位數限制為3。在“單一數據類型”中如何做到這一點?
也許你可以試試這個
nnuma.ToString(“#。###”);
numb.ToString(“#。###”);
你可以試試看 這也將正確地精確到最后一位數字,即0.6666將是0.667
decimal num = 20.123456789m;
Single x = Convert.ToSingle(String.Format("{0:00.000}", num));
很簡單。 只需在十進制后寫#以限制數字即可。
num.ToString(“ 0.0000#”)-限制為4位數字;
num.ToString(“ 0.0#”)-限制為1位數;
您正在尋找的運算是Math.Round
:
Single unrounded = (Single)dr["num1"]; // change if the DB type is not a single
double rounded = Math.Round(unrounded, 3);
Single roundedSingle = (Single)rounded;
當與Single一起使用時, Math.Round
返回一個double,因此需要在以后轉換為Single(浮點型)。 附帶說明:如果小數精度是一個問題,您可能要考慮使用decimal
s作為替代。
請注意, Math.Round
此重載執行班克舍入 ,即0.0005
變為0.000
,而0.0015
變為0.002
。 如果要使用另一種舍入,請改用Math.Round(Double,Int32,MidpointRounding)重載 。
正則表達式始終是答案;)
var n = Regex.Replace(convertedToSingle.ToString(), @"([^.]*\.\d{0,3}).*", "$1");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.