float f = 0.479f; Console.WriteLine(f.ToString("p1")); The output: 47.9 %What should I pass to ToString() in order to remove the percentage sign for output like this: 47.9 EDIT. I should have mentioned that I am passing the mask to a 3rd party component that does it's thing with it. I can't perform any acrobatics with the numbers unfortunately. It has to be the mask that does the trick.
4 Réponses :
pourrait essayer ou, si vous voulez ne pas vouloir d'espace, utilisez Edit: Si vous ne pouvez utiliser que la méthode remplacer ('%', '\ 0') code> p >
TOSTRING () CODE>, vous pouvez créer un objet
NumberFormatinfo code>, définissez le symbole pourcentage pour être vide et le transmettre dans le méthode.
(
NumberFormatinfo Code> est dans le
System.globalization Code> Espace de noms)
e.g. p>
Pour les points de mondialisation bonus, utilisez numberformatinfo.currentInfo.percentsymbol code> plutôt que sur le strict du symbole
% code>. (Je n'ai aucune idée de l'une des cultures .net en fait i> utiliser un symbole différent, cependant!) Certaines cultures placent également un espace entre le nombre et le symbole
% code> (voir
NumberFormatinfo.PerrycositivePattern CODE>) Il peut également vouloir effectuer une garniture après avoir fait cela ou il restera dans un espace de début ou de fuite.
Console.WriteLine((f * 100).ToString("0.0"));
Que diriez-vous de ce qui suit? E.G. F = 0,4792 -> "47,9" P> Une liste et des descriptions de format numérique standard sont disponibles ici sur MSDN , au cas où cela vous aidera. p> p>
J'aurais dû mention que je suis Passer le masque à une tierce partie composant qui fait c'est chose avec ce. Je ne peux pas effectuer d'acrobaties avec les chiffres malheureusement. Il a être le masque qui fait l'affaire. P>
alors je suppose que vous êtes coincé avec
float.tostring (string) code>, et que vous ne pouvez pas modifier uniquement le
P1 code> dans
F.Tostring ("P1 ") code>. Maintenant c'est un problème délicat. Si vous n'avez pas peur de ne rien briser liée aux changements impliqués, vous pouvez effectuer ce qui suit: p>
le format numérique "P", comme documenté sur msdn , utilise
numericformatinfo.percentsymbol code> afin d'écrire le signe"% ".
numericformatinfo code> est membre de votre
cultureinfo code>. Ce que vous pourriez faire, est cloner votre
courrielculture code> et modifier les percentsymbol à
"" code> comme les suivants: p>
static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { float f = 0.479f; Console.WriteLine(f.ToString("p1")); //will write 47.9% CultureInfo ci = CultureInfo.CurrentCulture.Clone() as CultureInfo; ci.NumberFormat.PercentSymbol = ""; System.Threading.Thread.CurrentThread.CurrentCulture = ci; Console.WriteLine(f.ToString("p1")); //will write 47.9 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } }
+1, semble être une méthode la plus fiable dans le scénario OP; Peut-être qu'il aura besoin de modifier directement la culture actuelle et de restaurer sa valeur par défaut après cet appel de composant tiers.
Quel est votre 3ème composant avec la chaîne formatée? Est-ce que cela limite votre longueur de texte formatée?
@Rubens parce qu'il fournit simplement une propriété .FormATString qui prend ce masque. Tout le formatage est effectué par le contrôle tiers.
Pouvez-vous créer un nouveau numéroInforformat? Si oui, vérifiez mon poste édité.