簡體   English   中英

四舍五入到小數點后一位

[英]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("#.##")

您說顯示為 -,因此可能是:

var d = value.ToString("f2");

請參閱標准數字格式字符串

如果您實際上想將值調整為2dp,則可以執行@middelpat建議的操作。

采用

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.

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