[英]Round to a certain decimal place
我正在計算某些值的平均值。 一切正常。 我想做的是將雙精度舍入到小數點后第二位。
例如
我將0.833333333333333333顯示為0.83
反正有這樣做嗎?
回合double
本身,如:
Math.Round(0.83333, 2, MidpointRounding.AwayFromZero);
(您應該定義MidpointRounding.AwayAwayFromZero以獲得正確的結果。默認情況下,此函數使用銀行取整。有關銀行取整的更多信息: http : //www.xbeat.net/vbspeed/i_BankersRounding.htm,因此您可以了解為什么不會這樣做給您正確的結果)
或僅顯示兩個小數位的值:
myDouble.ToString("F");
或由#
號決定的任何小數
myDouble.ToString("#.##")
采用
Math.Round(decimal d,int decimals);
如
Math.Round(0.833333333,2);
這將為您提供0.83
的結果。
double d = 0.833333333333333333;
Math.Round(d, 2).ToString();
嘗試
decimalVar = 0.833333333333333333;
decimalVar.ToString ("#.##");
如果您希望將0.85781..
視為0.85
,最簡單的方法是乘以100
,轉換為int
然后除以100
。
int val = (int)(0.833333333333333333 * 100);
var result = val /100;
它應該產生您想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.