Gå til innhold

C#: komma og punktum, hvordan få det til å virke uavhengig av desimaltegn?


Anbefalte innlegg

Heisann!

 

Jeg skal lese inn flyttall (f.eks. 1,56) fra en tekst. Problemet er at det tallet kan være lagret på en maskin med engelsk oppsett som skriver 1.56. Da blir det krøll!

 

Går det an å fikse det ved å trikse CultureInfo-klassen eller må jeg sørge for å f.eks. skrive 1_56, og bytte ut _ med det aktuelle desimaltegnet?

 

		private void makeDecimalPoint()
	{
		double temp = 1.1;
		string tempString = temp.ToString();
		decimalPoint = tempString[1];
	}

 

Og dermed...

string thresholdString = sr.ReadLine();
			thresholdString = thresholdString.Replace('_', decimalPoint);
			threshold = Double.Parse(thresholdString);

 

Alternativt kan jeg lage en klasse som inneholder disse data, serialize den til disk. Eller kanskje skrive data binært til disk?

Lenke til kommentar
Videoannonse
Annonse
  • 1 måned senere...

Det beste er vel å låse culturen til den du vil ha ( feks nb-NO - norsk - som bruker , som desimaltegn). Da vil både tall og datoer være forutsigbare. Hvis dette er et program hvor endringen skal gjelde i hele programmet, kan du sette det i assembly.cs fila:

 

[assembly: AssemblyCulture("nb-NO")]

 

Hvis endringen kun gjelder i en del av programmet, kan du sette det i den aktuelle metoden:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("nb-NO");

 

Lykke til :)

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...