Thread Punkt nach jedem 3. Zeichen (Tausendertrenner bei Zahlen) (6 answers)
Opened by Faby at 2010-10-08 10:51

hlubenow
 2011-02-09 14:08
#145518 #145518
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Warum nicht einfach eine Funktion schreiben. Muß man doch oft in C.
Bin nun kein C-Profi, aber hier mal ein Vorschlag:
Code (c): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *eur(double a);

int main() {
    double a;
    char *b;
    a = 1234567.891011;
    b = eur(a);
    printf ("%s\n", b);
    return 0;
}

char *eur (double a) {
    int i;
    int l;
    int x;
    char *b;
    char *c;
    b = malloc(30);
    c = malloc(40);
    sprintf(b, "%.2f", a);
    l = strlen(b);
    x = 0;
    c += 40;
    *c = '\0';
    for (i = l - 1; i >= 0; i--)
    {
        b += i;
        if (*b == '.') {
            *b = ',';
        }
        if (i < l - 3) {
            if (x % 3 == 0 && i < l - 4) {
                c--;
                *c = '.';
            }
            x++;
        }
        c--;
        *c = *b;
        b -= i;
    }
    free(b);
    return c;
}

Puh, C ist immer so anstrengend ...

Gruß

View full thread Punkt nach jedem 3. Zeichen (Tausendertrenner bei Zahlen)