我需要將一些 Delphi 代碼移植到 C#,它使用 Delphi 的“g”格式說明符。這是“g”說明符的檔案(來自(https://docwiki.embarcadero.com/Libraries/Sydney/en/System.SysUtils.Format)
一般的。引數必須是浮點值。使用固定或科學格式將該值轉換為可能的最短十進制字串。結果字串中的有效位數由格式字串中的精度說明符給出;如果不存在精度說明符,則假定默認精度為 15。從結果字串中洗掉尾隨零,并且僅在必要時出現小數點。如果值中小數點左側的位數小于或等于指定精度,并且值大于或等于 0.00001,則生成的字串使用定點格式。否則,生成的字串使用科學格式。
這里有些例子:
Format("%.2g", 123456789.123456789) => 1.2E008
Format("%.3g", 123456789.123456789) => 1.23E008
Format("%.6g", 123456789.123456789) => 1.23457E008
Format("%.15g", 123456789.123456789) => 123456789.123
Format("%.15g", 2.0) => 2
是否有內置的 C# .Net 函式產生相同的結果?
uj5u.com熱心網友回復:
嘗試g(或G)格式說明符(小提琴):
string[] tests = new string[] {
"g2",
"g3",
"g6",
"g15",
};
double value = 123456789.123456789;
var result = string.Join(Environment.NewLine, tests
.Select(test => $"{value} => {value.ToString(test)} ({test})"));
Console.WriteLine(result);
Console.WriteLine();
value = 2.0;
result = string.Join(Environment.NewLine, tests
.Select(test => $"{value} => {value.ToString(test)} ({test})"));
Console.WriteLine(result);
輸出:
123456789.12345679 => 1.2e 08 (g2)
123456789.12345679 => 1.23e 08 (g3)
123456789.12345679 => 1.23457e 08 (g6)
123456789.12345679 => 123456789.123457 (g15)
2 => 2 (g2)
2 => 2 (g3)
2 => 2 (g6)
2 => 2 (g15)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/519526.html
標籤:C#德尔福格式
上一篇:如何用\..\擴展路徑
