[英]how to round up a double value to nearest integer in c#
我正在開發Windows窗體應用程序,我需要進行一些轉換並將值四舍五入。我需要將double值四舍五入為最接近的整數。例如,應用四舍五入后1.4應該為1,1.6應該為2.請參考我的代碼如下。
double d = 51386933935386.5;
uint x = (uint)Math.Round(d, 0, MidpointRounding.AwayFromZero);
舍入后,我需要值=51386933935386。但是我得到了一些不同的值。
51386933935386比uint
最大值長。 使用下一個:
double d = 51386933935386.5;
long x = (long)Math.Round(d, 0, MidpointRounding.AwayFromZero);
為什么不使用`Math.Floor(d);' ?
double d = 51386933935386.5;
var result = Math.Floor(d);
// result = 51386933935386
它返回您所需的號碼。
更新
感謝@HimBromBeere指出,您可以使用下面的代碼完成您的任務。
使用此代碼
double d = 51386933935386.5;
var x = Math.Round(d, 0, MidpointRounding.AwayFromZero);
var result = Convert.ToInt64(x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.