Avatar billede erve Nybegynder
23. juni 2004 - 17:21 Der er 1 kommentar og
1 løsning

string.Format variabel antal decimaler

Jeg vil gerne formattere en double med et variabelt antal decimaler til en string v.hj.a. string.Format.
Samtidig skal decimalerne altid vises også selvom de er 0.
Dvs:

int antalDecimaler = 2;
123.456789 -> 123.45
123.0000012 -> 123.00
123 -> 123.00

int antalDecimaler = 3;
123.456789 -> 123.456
123.0000012 -> 123.000
123 -> 123.000

Nogen der kan skrue den formatstring sammen til mig
Avatar billede arne_v Ekspert
23. juni 2004 - 19:09 #1
Så vidt jeg ved har .NET ikke noget der svarer til printf format * specififier.

Så mit bedste forslag er følgende:

using System;

class MainClass
{
    private static void test(double d, int ndig)
    {
        string[] fmt = { "#", "#.0", "#.00", "#.000", "#.000", "#.0000", "#.00000", "#.0000000" };
        Console.WriteLine(d.ToString(fmt[ndig]));
    }
    public static void Main(string[] args)
    {
        test(123.456789, 3);
        test(123.0000012, 3);
        test(123, 3);
        test(123.456789, 2);
        test(123.0000012, 2);
        test(123, 2);
    }
}
Avatar billede erve Nybegynder
24. juni 2004 - 08:25 #2
Tak Arne - Så enkelt og dog så ligetil.
Det var også min konkslussion at der ikke var sprinf syntaks.
Min metode endte så med at se sådan ud så får man også fornstillet 0 ved doubles < 1
    public string Format(double d, int antalDecimaler)
    {
      string formatString = "0.";
      for (int i =0 ; i < antalDecimaler ; i++)
        formatString += "0";
      return d.ToString(formatString);
    }
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