Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Anbefalte innlegg

Heisann,

jeg har et litt flaut problem, som jeg ikke helt klarer å løse. Noen som ser noen feil i koden min?

class MainClass
{
 static void Main()
 {
   string s = "1.263684";
   double d = Double.Parse(s, 2);
   Console.WriteLine(d.ToString());
 }
}

Har tatt koden på husken, men det skulle da ikke være stort verre enn dette? Hvorfor i all verden funker det ikke? Med Parse får jeg InvalidArgumentException, og med TryParse får jeg bare 0.

Lenke til kommentar
Videoannonse
Annonse

Det finnes:

Double.Parse(string s, IFormatProvider provider)
Double.Parse(string s, NumberStyles style)
Double.Parse(string s, NumberStyles style, IFormatProvider provider)

 

Logisk nok vil koden din feile med InvalidArgumentException (Ugyldig argument) da du leverer inn en integer som 2ndre parameter.

 

Rekkefølge for det du ønsker er:

1. Gjør om streng til double

double d = Double.Parse(s)

2. Rund av double

d = Math.Round(d, 2)

 

Parse har ingenting med avrunding å gjøre. Dens eneste funksjon er å gå fra et format til et annet. (streng til tall, tall til streng, dato til streng, osv...)

 

TryParse fungerer som Parse bare at den aldri kaster exception om strengen er ugyldig. Istedet returnerer den en bool som sier om parsingen var vellykket. En grei oppgradering fra .Net 2003 slik at man slipper å ta try-catch rundt en parsing.

Endret av wolf5
Lenke til kommentar

jaja, tenkte jeg faktisk ikke på. og dette er forresten koden akkurat slik den ser ut (nesten):

   	decimal text = decimal.Parse(display.Text);
   	text = Math.Round(text, 2);
   	MessageBox.Show(text.ToString());

 

og du har rett, wolf5, jeg som tok feil. tok koden på husken, satt på skolen når innlegget ble skrevet (av meg).

 

Takk for hjelpen , folkens!

Endret av hockey500
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...