Avatar billede renard Nybegynder
06. marts 2007 - 14:34 Der er 7 kommentarer og
2 løsninger

Decimal og tusind-separator i C#

1: Hvordan angiver man antallet af ønskede decimaler (fx 2)?
Fx
double tal = 1,51786;
label1.Text = tal.ToString(); //Vis med 2 decimaler

2: Hvordan viser man tal i fx tekstboks med punktum som tusind-separator? I.e. 1.205.458
Avatar billede kalp Novice
06. marts 2007 - 14:36 #1
1.

label1.Text = tal.ToString("#.#");
Avatar billede kalp Novice
06. marts 2007 - 14:37 #2
2.

måske

label1.Text = tal.ToString("#.###.###");
Avatar billede mh6000 Nybegynder
06. marts 2007 - 14:37 #3
ms-help://MS.VSCC.2003/MS.MSDNQTR.2005OCT.1033/vblr7/html/vafctFormat.htm

Dim MyDateTime As Date = #1/27/2001 5:04:23 PM#
Dim MyStr As String
' Returns current system time in the system-defined long time format.
MyStr = Format(Now(), "Long Time")
' Returns current system date in the system-defined long date format.
MyStr = Format(Now(), "Long Date")
' Also returns current system date in the system-defined long date
' format, using the single letter code for the format.
MyStr = Format(Now(), "D")
' Returns the value of MyDateTime in user-defined date/time formats.
MyStr = Format(MyDateTime, "h:m:s")  ' Returns "5:4:23".
MyStr = Format(MyDateTime, "hh:mm:ss tt")  ' Returns "05:04:23 PM".
MyStr = Format(MyDateTime, "dddd, MMM d yyyy")  ' Returns "Saturday,
  ' Jan 27 2001".
MyStr = Format(MyDateTime, "HH:mm:ss")  ' Returns "17:04:23"
MyStr = Format(23)  ' Returns "23".
' User-defined numeric formats.
MyStr = Format(5459.4, "##,##0.00")  ' Returns "5,459.40".
MyStr = Format(334.9, "###0.00")  ' Returns "334.90".
MyStr = Format(5, "0.00%")  ' Returns "500.00%".
Requirements
Avatar billede kalp Novice
06. marts 2007 - 14:38 #4
hvis den ikke godtager mine . mellem # så prøv ,
Avatar billede bulgroz Nybegynder
06. marts 2007 - 15:12 #5
Normalt er måden hvormed noget skrives til UI bestemt af din CultureInfo

Men du kan naturligvis "hardkode" dette også:

            int myNumber = 1205458;

            NumberFormatInfo numberFormatInfo = new NumberFormatInfo();

            numberFormatInfo.NumberDecimalDigits = 0;
            numberFormatInfo.NumberGroupSeparator = ".";

            string number = myNumber.ToString( "N", numberFormatInfo);


Smme metode muliggør ændring i samtlige måder hvormed du kan udskrive et tal. Prøv blot at undersøge NumberFormatInfo
Avatar billede bulgroz Nybegynder
06. marts 2007 - 15:28 #6
Avatar billede renard Nybegynder
06. marts 2007 - 20:03 #7
Tak Gawi, label1.Text = tal.ToString("#.#"); virkede. Jeg kunne ikke få label1.Text = tal.ToString("#.###.###"); til at virke, men der kan man bruge Bulgroz's hard coding. Kom med et svar Bulgroz, så deler jeg pointerne.
Avatar billede bulgroz Nybegynder
06. marts 2007 - 21:32 #8
Husk at når du arbejder med strenge, så er det best practice at angive IFormatProvider, så måden hvormed tekst skrives afhænger af brugerens systemopsættelse.
Avatar billede renard Nybegynder
06. marts 2007 - 21:42 #9
OK, tak Bulgroz.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB