2017-06-19 3 views
0

In einer VS2017 VB.net Webformular App versuche ich eine Zahl, die eine Zeichenfolge ("12345.0000") ist, in das Format: "12345.00", dh 2 Dezimalstellen ohne Tausendertrennzeichen. Dazu verwende ich die folgende Codezeile: -VS2017 VB.NET Format String funktioniert nicht

rentalPriceVal = Format(memberPrices.RentalPrice, "0.00") 

Es gibt "0.00" zurück.

Ich hatte ursprünglich FormatNumber(memberPrices.RentalPrice, 2), aber das fügt ein Gebietsschema-abhängige Tausende Trennzeichen und Dezimal-Kennung.

Ich habe auch versucht: memberPrices.RentalPrice.ToString("0.00") aber diese Fehler mit "kann String nicht zu IFormatProvider".

Ich bin ratlos. Habe ich die Syntax vermasselt, gibt es einen besseren Weg, den ich noch nicht gesehen habe oder ist es einfach nicht möglich?

Danke.

+3

Die Zeichenfolge zuerst in die Zahl konvertieren und dann formatieren. – GSerg

+0

'Format (Val (memberPrices.RentalPrice)," 0.00 ")' – Slai

Antwort

2

Verwenden Decimal.TryParse() Ihre Zeichenfolge auf eine dezimal zu konvertieren, dann Decimal.ToString() mit "F2" als format verwenden.

Dim price As Decimal 
If Decimal.TryParse(memberprices.RentalPrice, price) Then 
    Dim strPrice As String = price.ToString("F2") 
    ' .. use "strPrice" somehow ... 
    Debug.Print(strPrice) 
End If