簡體   English   中英

限制小數點后的位數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM