限制双字符中的最大字符数
本文关键字:字符 | 更新日期: 2023-09-27 18:26:11
有没有一种优雅的方法可以将双精度转换为字符串,使其四舍五入以适应最大总长度,但在其他方面与默认的中性区域性格式相似?
我不想仅仅限制小数位数,因为用于符号和指数的字符数可能会改变,或者可能不在科学记数法中。
例如,最多20个字符
-1.23456789012345E-67
应显示为
-1.2345678901235E-67
而
123
应显示为123
,而不是1.23E+02
。
正如Sintar所提到的,G格式说明符应该可以满足您的所有需求。
double s = 1.31956544564371E+28;
Console.WriteLine("{0:G5}",s); // will print 1.3196E+28
以下是可能有用的扩展方法:
public static class doubleExtensions
{
public static string GetDoubleString(this double source,int numOfChars){
string temp = "{0:G" + numOfChars + "}";
return string.Format(temp,source);
}
}