On ne sait pas si vous serez toujours affaire à des valeurs numériques. Si vous voulez éviter l'analyse syntaxique des chaînes sous forme de nombres, vous pouvez essayer quelque chose comme ceci:
public static string TrimTo(string str, int maxLength)
{
if (str.Length <= maxLength)
{
return str;
}
return str.Substring(0, maxLength);
}
Cela couper la chaîne fournie à six caractères, si elle est plus de six. Ce semble être pour être ce que vous voulez, mais (comme le fait remarquer Kees), fera quelque chose d'inattendu avec une chaîne comme "1234567.890".
La clause conditionnelle est nécessaire ici car String.Substring
se plaindra si le second index est en dehors de la chaîne (si la chaîne est plus courte que maxLength
, en d'autres termes).
(Si vous avez joué avec C# 3.0 extension methods du tout, vous pourriez le reconnaître, légèrement modifié par rapport à ce qui précède, comme une excellente occasion pour un: string trimmed = s.TrimTo(10);
)
Qu'avez-vous essayé? string.Format() avec une chaîne de format numérique (telle que g ou f) dépend de la valeur d'entrée qui est un nombre (décimal, flottant, double). Donc vous devrez d'abord analyser votre chaîne de chiffres. Si vous voulez juste tronquer sans arrondir, vous pouvez toujours utiliser string.Substring(). –
Avez-vous aussi des chaînes comme 1003.1543234? Que devrait-il arriver avec ceux sur le format? –
ce ne sont pas des chaînes, ils sont des décimales, votre description est incorrecte et trompeuse – JrBriones