Quel sera le moyen le plus simple de convertir une chaîne en décimale?
entrée: p> sortie sera p> J'ai essayé d'utiliser ce code: p>
7 Réponses :
Utilisez décimal.parse code> pour convertir en nombre décimal, puis utilisez
.tostring ("format ici") code> pour reconvertir à une chaîne.
string s = (aAsDecimal <0) ? Math.Abs(aAsDecimal).ToString("##,###0.00") + "-" : aAsDecimal .ToString("##,###0.00");
J'essaie ceci mais le résultat que je veux est négatif devrait être à la fin. Dim A comme chaîne A = "4000.00-" A = décimal.parse (a) .tostring ("##, ###. 00") console.write (a) "Résultat 4 000,00
Sinon, il y a l'approche non déclarée: (un <0)? Math.abs (a) .tostring ("##, ### 0.00") + "-": A.Tostring ("##, ### 0.00");
toujours pas de chance. Je vais l'essayer d'une manière différente. Je posterai ici une fois que je l'ai eu. Merci pour votre réponse.
Ma dernière approche de recours fera le travail. Bien que pas entièrement élégant.
Lorsque je convertit je convertit en VB, j'ai eu une erreur sombre comme string = si ((((a <0), math.abs (a) .tostring ("##, ### 0.00") & "-", A.Tostring ( "##, ### 0.00"))
Dim Aasdecimal comme décimal = décimal.parse (a) utilise ensuite AasDecimal dans la déclaration que je vous ai donnée.
Ceci est le site Web que j'ai utilisé pour convertir votre code développeurfusion.com/tools/convert / csharp-to-vb
Mon original utilisé A défini comme une chaîne. C'est pourquoi j'ai introduit Aasadecimal. Vous obtenez probablement une exception de typast ou quelque chose.
Le suivant fonctionne bien pour moi, mais je ne sais pas s'il est correct ou non.
double a = 40000.00; a = double.Parse(a.ToString("##,###.00")); MessageBox.Show(a.ToString("##,###.00"));
La ligne médiane est inutile. Vous convertissez un double en une chaîne, puis de l'analyser à nouveau au double. Maintenant, si vous essayez de tronquer des endroits extrêmement décimaux (c'est-à-dire: 40000.0001 à 40000.00), cela fonctionnera, mais les mathématiques (A, 2) seront plus efficaces.
Utilisez décimal.tryparse
Ce code fonctionne, mais il est assez long:
Dim a as string Dim b as decimal a = "4000.00-" b = a If b >= 0 then console.writeline (b.ToString("##,###.00")) Else b = Math.Abs(b) console.writeline (b.ToString("##,###.00") & "-") End if
Sub Main() Dim convert As Func(Of String, Decimal) = _ Function(x As String) Decimal.Parse(x) ' This is a lambda expression. Dim a = convert("-16325.62") Dim spec As String = "N" Console.WriteLine("{1}", spec, a.ToString(spec)) 'Console.ReadLine() ' Uncomment to see value in Console output. End Sub
pour vb.net:
CDec(Val(a))
Dim D@ = CDec(TextBox1.Text) '//convert string to decimal with short
blog.stevex.net/string-formatting-in-cshaparpe