Hejsa.
Jeg sidder og roder med afrunding af double variable, og har lidt locale problemer. jeg får nogle måledata i doubles, f.eks.
-20,87453 som jeg godt vil have afrundet til et decimal og rvt. neg. sign foran tallet.
-20.364 = "-20,4"
20.908 = "21.0"
-22 = "-22.0"
C# giver mig bøvl, sign er til sidst i strengen rounding virker ikke.
hvordan kontrollerer jeg bedst afrunding og konvertering til streng ? Har kun en-US locale til rådighed pt, og vil godt have kontrol uafhængigit af locale indstillingen.
Venligst
Jes Ramsing
Hej Jes,
Jeg er ikke helt sikker på om du vil ha' det lavet om til en streng med komma eller punktum!
Men prøv dette:
private void test()
{
double d = 20.364;
MessageBox.Show(d.ToString()+" = "+d.ToString("#0.0;-#0.0;0.0"));
d = 20.908;
MessageBox.Show(d.ToString()+" = "+d.ToString("#0.0;-#0.0;0.0"));
d = -22.0;
MessageBox.Show(d.ToString()+" = "+d.ToString("#0.0;-#0.0;0.0"));
}
Hvis du ikke vil ha' at ToString funktionen skal konvertere til den lokale "decimal seperator" så skal du angive en ny på følgende måde:
// HUSK at bruge namespace: System.Globalization;
private void test2()
{
NumberFormatInfo f;
f = new CultureInfo( "da-DK", false).NumberFormat;
f.NumberDecimalSeparator = "[minSep]";
double d = -22.0;
MessageBox.Show(d.ToString()+" = "+d.ToString("#0.0;-#0.0;0.0", f));
}
Håber det hjælper dig.
/Michael