Oprettet ons. d. 22. februar 2012 kl. 11:05:28

opcm_ip
opcm_ip (8.290 point. Point ude: 450)

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?

Skrevet ons. d. 22. februar 2012 kl. 11:41:15| #1

bvli
bvli (21.365 point)
Cast den til en int først f.eks.

Skrevet ons. d. 22. februar 2012 kl. 11:41:56| #2

bvli
bvli (21.365 point)
Altså:
int d = (int)decimal.Parse("10,56");
Console.WriteLine(d.ToString("0"));

Skrevet ons. d. 22. februar 2012 kl. 12:26:02| #3


Skrevet ons. d. 22. februar 2012 kl. 12:35:32| #4

opcm_ip
opcm_ip (8.290 point)
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

Skrevet ons. d. 22. februar 2012 kl. 13:12:38| #5

bvli
bvli (21.365 point)
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/ (...)

Skrevet ons. d. 22. februar 2012 kl. 13:21:08| #6

mikalj
mikalj (11.220 point)
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)

Skrevet ons. d. 22. februar 2012 kl. 13:31:20| #7

opcm_ip
opcm_ip (8.290 point)
Hej bvli - den er købt, Tak!

Smid et svar!

Skrevet ons. d. 22. februar 2012 kl. 13:33:44| #8


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Print fra Windows Service på Win2008

Oprettet den 24. maj 2012 kl. 11.17
jps6kb giver 200 point for svar | Giv et svar »

Udskrive en Breadcrumb (Jeg er her >>)

Oprettet den 18. maj 2012 kl. 12.04
Qbruger giver 200 point for svar | Giv et svar »

Hjælp til at lokalisere fejl i CMS (synkron.via) dll

Oprettet den 16. maj 2012 kl. 19.31
jokkejensen giver 200 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger