示例變數:
var example1 = 1,12345638282382384;
var example2 = 12,12;
var example3 = 30,19999;
結果我想要的:
example1 = 1,1234;
example2 = 12,12; // 12,1200 would be better but isn't that important)
example3 = 30,1999;
問題是什么?我得到了超過 4 個小數,但我只想看到 4 個小數。我在互聯網上搜索,但我只看到四舍五入和完整數字得到逗號的例子,而我的例子已經有逗號。
此外,我是一名學生/初級開發人員,至少在詢問之前嘗試過四處搜索,希望有人知道答案。
uj5u.com熱心網友回復:
Math.Round允許您指定所需的舍入行為,例如Math.Round(example1,4,MidpointRounding.ToZero)產生1.1234。
C# > var example1 = 1.12345638282382384;
C# > Math.Round(example1,4)
╭─?──────────────────────────────────────────────────────────────╮
│ 1.1235 │
╰────────────────────────────────────────────────────────────────╯
C# > Math.Round(example1,4,MidpointRounding.ToZero)
╭─?──────────────────────────────────────────────────────────────╮
│ 1.1234 │
╰────────────────────────────────────────────────────────────────╯
uj5u.com熱心網友回復:
如果您非常想避免四舍五入,我會按照 user18387401 在他們的評論中建議的去做,但也使用一些字串格式來始終顯示 4 個小數(即使這 4 個小數是0000):
public static double TruncateDigits(double value, int places)
{
var integral = Math.Truncate(value);
var fraction = value - integral;
var multiplier = (double)Math.Pow(10, places);
var truncatedFraction = Math.Truncate(fraction * multiplier) / multiplier;
return integral truncatedFraction;
}
// Usage
Console.WriteLine(string.Format("{0:N4}", TruncateDigits(example1, 4)));
指向 dotnetfiddle 的鏈接展示了這一點
如果您對總是四舍五入感到滿意,我強烈建議您考慮四舍五入而不是這樣做,因為四舍五入的作用與此相同。Panagiotis Kanavos 的回答展示了如何做到這一點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/475056.html
下一篇:對資料表中的多列應用過濾器
