限制双字符中的最大字符数

本文关键字:字符 | 更新日期: 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);
    }
}