Avatar billede opcm_ip Nybegynder
22. februar 2012 - 11:05 Der er 7 kommentarer og
1 løsning

ToString uden afrunding...

Jeg skal vise et tal som bliver leveret til mig sådan her (decimal): "10,56" og jeg skal bruge ToString metoden.

Testen:
decimal d = new decimal(double.Parse("10,56"));
d.ToString("###,###,###"); <- giver 11, jeg vil bare have den til at fjerne decimalerne...

Hvilket format kan man bruge for ikke at runde værdien op?

Og jeg ved godt at man kan bruge Math.Floor...men i dette tilfælde skal jeg bruge ToString...kan det i det hele taget lade sig gøre?
Avatar billede bvli Praktikant
22. februar 2012 - 11:41 #1
Cast den til en int først f.eks.
Avatar billede bvli Praktikant
22. februar 2012 - 11:41 #2
Altså:
int d = (int)decimal.Parse("10,56");
Console.WriteLine(d.ToString("0"));
Avatar billede Syska Mester
22. februar 2012 - 12:26 #3
Math.Floor
Avatar billede opcm_ip Nybegynder
22. februar 2012 - 12:35 #4
Begge gode forslag - og begge virker, men det jeg leder efter er er et format i ToString som ikke afrunder... ala.ToString("###.###",NoRounding=True); Skal nok ligge i Format specifier...og ikke i param 2
Avatar billede bvli Praktikant
22. februar 2012 - 13:12 #5
Så er du vist ved at være derude, hvor du er nødt til at skrive en implementation af IFormatProvider.

http://msdn.microsoft.com/en-us/library/system.iformatprovider.aspx
Avatar billede mikalj Nybegynder
22. februar 2012 - 13:21 #6
Der er ikke nogen måde at undgå afrunding udelukkende ved brug af ToString(). Du er nødt til at trunkere værdien først selv enten ved at bruge Math.Floor() eller caste til en int/long.

Hvis du kan leve med normal afrunding, kan du sætte antallet af decimaler til 0 med .ToString("F0") (fixed point) eller .ToString("N0") (fixed point med tusindtalsseperator)
Avatar billede opcm_ip Nybegynder
22. februar 2012 - 13:31 #7
Hej bvli - den er købt, Tak!

Smid et svar!
Avatar billede bvli Praktikant
22. februar 2012 - 13:33 #8
Svar :)
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