Fr3*_*dan 5 c# string-formatting number-formatting
我想将一个double
值解析成一个string
.我希望我的号码具有指定的位数(直到运行时才会知道).如果这个数字可以用数字的非零值表示,这就是我想要的.如果数字是这样的零,我希望用科学记数法表示.
一些例子会使这更清楚,这假设我想要3位数:
价值: .2367 输出: "0.23"
价值: .00367 输出: "3.67E-3"
价值: 22.3 输出: "22.3"
价值: 3364.0 输出: "3.36E3"
我的解决方案是使用ToString()方法和N
数字格式字符串,如果它导致零恢复到E
格式字符串,但这感觉就像重新发明轮子.有谁知道一个内置的方法来做到这一点?
Pau*_*sik 15
您是否看过使用通用数字格式说明符?
通用("G")格式说明符将数字转换为最紧凑的定点或科学符号,具体取决于数字的类型以及是否存在精度说明符.
文档中的一些示例:
double number;
number = .0023;
Console.WriteLine(number.ToString("G", CultureInfo.InvariantCulture));
// Displays 0.0023
number = 1234;
Console.WriteLine(number.ToString("G2", CultureInfo.InvariantCulture));
// Displays 1.2E+03
number = Math.PI;
Console.WriteLine(number.ToString("G5", CultureInfo.InvariantCulture));
// Displays 3.1416
Run Code Online (Sandbox Code Playgroud)