是否有一种优雅的方法可以将double转换为字符串,因此它会被舍入以适应最大总长度,但在其他方面类似于默认的中性文化格式?
我不想仅限制小数位数,因为用于符号和指数的字符数可能会改变,或者它可能不是科学记数法。
例如,最多20个字符
-1.23456789012345E-67
应显示为
-1.2345678901235E-67
,而
123
应显示为123
,而不是1.23E+02
。
答案 0 :(得分:0)
正如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);
}
}