C#格式双限制有效数字但限制科学计数法
C# Format double limiting significant digits but restrict scientific notation
我想将 double
值的格式限制为 2 个重要位置,但不在数字的整数部分。
目前我使用G2
表示法,但如果整数部分超过2位,它会以科学计数法显示数字。
我也试过0.##
,但是无论整数部分有多少,它都会在小数部分保留2个有效位。
我要的是这个:
1234 => 1234
123.4 => 123
12.34 => 12
1.234 => 1.2
0.1234 => 0.12
0.01234 => 0.012
0.001234 => 0.0012
是否有任何标准方法可以做到这一点,还是我应该自己重新发明轮子?
我想不出办法,因为它有点不合常规,但这个扩展可能有用:
public static string DoubleLimited(this double n){
return n < 100 ? $"{n:G2}" : n.ToString("#0.");
}
像
一样使用
var num = 1234.0;
Console.WriteLine(num.DoubleLimited());
我想将 double
值的格式限制为 2 个重要位置,但不在数字的整数部分。
目前我使用G2
表示法,但如果整数部分超过2位,它会以科学计数法显示数字。
我也试过0.##
,但是无论整数部分有多少,它都会在小数部分保留2个有效位。
我要的是这个:
1234 => 1234
123.4 => 123
12.34 => 12
1.234 => 1.2
0.1234 => 0.12
0.01234 => 0.012
0.001234 => 0.0012
是否有任何标准方法可以做到这一点,还是我应该自己重新发明轮子?
我想不出办法,因为它有点不合常规,但这个扩展可能有用:
public static string DoubleLimited(this double n){
return n < 100 ? $"{n:G2}" : n.ToString("#0.");
}
像
一样使用var num = 1234.0;
Console.WriteLine(num.DoubleLimited());