Jag använder framework 1.1 och SQLServer 2000. När jag läser in decimaltal från databasen till ett DataSet och sedan visar dom i t.ex. en textbox så läggs en nolla på i slutet. Om värdet t.ex. är 20.35 i databasen så visas 20.350 i textboxen. Fältet i databasen är en decimal med length 9, precision 18 och scale 3. Det finns alltså plats för 3 decimaler men jag har bara angett två i talet som är sparat. Det verkar som om frameworket alltid fyller ut med nollor så antalet decimaler i scale alltid visas. Tittar man på värdet i datasetet i watchwindow så är det 20.35 men det verkar som om nollan läggs på vid konvertering till en sträng med ToString(). Finns det något sätt att få bort att denna nollutfyllnad görs. Det är ju skillnad på 20.350 och 20.35 trots allt. Om du kollar i SQL Server QA, så ser du samma nollutfyllnad. Verkar vara ett "defaultbeteende" Testa att lägga till detta på din sida.Extra nolla vid visning av decimal från database
Sv: Extra nolla vid visning av decimal från database
Testa med .ToString("0.0#")
/mickeSv:Extra nolla vid visning av decimal från database
<code>
Dim nfi As NumberFormatInfo = New CultureInfo("en-US", False).NumberFormat
nfi.PercentDecimalDigits = 2
</code>
Räcker inte det så kan du ta hjälp av String.Format tillsammans med ovanstående:
<code>
x = String.Format("{0:c}", Amount)
</code>