将长字符串格式化为短字符串C#

时间:2011-01-20 18:34:07

标签: c# string

我有一些字符串,例如:

1.5555555555555
2.3421354325435354545
4.509019292

我想将它们格式化为一个字符串,例如:

1.5555
2.3421
4.5090

我尝试使用C#String.Format,但我无法正确使用它。

有人可以给我正确的c#声明来完成这个吗?

感谢。

3 个答案:

答案 0 :(得分:3)

string.Format("{0:N4}",decimalValue);

Standard Numeric Format Strings

Custom Numeric Format Strings

答案 1 :(得分:3)

目前还不清楚你是否总是处理数值。如果你想避免将字符串解析为数字,你可以尝试这样的事情:

public static string TrimTo(string str, int maxLength)
{
    if (str.Length <= maxLength)
    {
        return str;
    }
    return str.Substring(0, maxLength);
}

这会将提供的字符串修剪为六个字符(如果长度超过六个字符)。这个似乎就是你想要的,但是(正如Kees所指出的那样),会对像“1234567.890”这样的字符串做一些意想不到的事情。

条件子句在这里是必要的,因为String.Substring会抱怨如果第二个索引在字符串之外(换句话说,如果字符串短于maxLength)。

(如果你曾经玩过C#3.0 extension methods,你可能会认识到这一点,稍微修改一下,作为一个很好的机会:string trimmed = s.TrimTo(10);

答案 2 :(得分:0)

如果将字符串转换为双精度数,则可以使用String.Format指定在将其重新格式化为字符串时要包含的小数位数。

String.Format("{0:0.0000}", double.Parse("1.55555555555555"))