numlen = strlen(num);
if(numlen <= 3)
strcpy(abbrev,num);
- else if(numlen == 4 || numlen == 7 || numlen == 10 || numlen == 13) {
- memcpy(abbrev,num,1);
- abbrev[1]='.';
- strncpy(abbrev+2,num+1,2);
+ else if (numlen%3 == 1) {
+ abbrev[0]=num[0];
+ abbrev[1]=(UseComma) ? ',' : '.';
+ abbrev[2]=num[1];
+ abbrev[3]=num[2];
abbrev[4]='\0';
- if(!n) return(abbrev);
- if(numlen == 4)
- strcat(abbrev,"K");
- else if(numlen == 7)
- strcat(abbrev,"M");
- else if(numlen == 10)
- strcat(abbrev,"G");
- else if(numlen == 13)
- strcat(abbrev,"T");
}
- else if(numlen == 5 || numlen == 8 || numlen == 11 || numlen == 14) {
- memcpy(abbrev,num,2);
- abbrev[2]='.';
- strncpy(abbrev+3,num+2,2);
+ else if (numlen%3 == 2) {
+ abbrev[0]=num[0];
+ abbrev[1]=num[1];
+ abbrev[2]=(UseComma) ? ',' : '.';
+ abbrev[3]=num[2];
+ abbrev[4]=num[3];
abbrev[5]='\0';
- if(!n) return(abbrev);
- if(numlen == 5)
- strcat(abbrev,"K");
- else if(numlen == 8)
- strcat(abbrev,"M");
- else if(numlen == 11)
- strcat(abbrev,"G");
- else if(numlen == 14)
- strcat(abbrev,"T");
}
- else if(numlen == 6 || numlen == 9 || numlen == 12 || numlen == 15) {
- memcpy(abbrev,num,3);
- abbrev[3]='.';
- strncpy(abbrev+4,num+3,2);
+ else if (numlen%3 == 0) {
+ abbrev[0]=num[0];
+ abbrev[1]=num[1];
+ abbrev[2]=num[2];
+ abbrev[3]=(UseComma) ? ',' : '.';
+ abbrev[4]=num[3];
+ abbrev[5]=num[4];
abbrev[6]='\0';
- if(!n) return(abbrev);
- if(numlen == 6)
+ }
+ if (n) {
+ if (numlen <= 3) {
+ //no prefix
+ }
+ else if (numlen <= 6)
strcat(abbrev,"K");
- else if(numlen == 9)
+ else if (numlen <= 9)
strcat(abbrev,"M");
- else if(numlen == 12)
+ else if (numlen <= 12)
strcat(abbrev,"G");
- else if(numlen == 15)
+ else if (numlen <= 15)
strcat(abbrev,"T");
+ else if (numlen >= 18)
+ strcat(abbrev,"P");
+ else if (numlen <= 21)
+ strcat(abbrev,"E");
+ else if (numlen <= 24)
+ strcat(abbrev,"Z");
+ else if (numlen <= 27)
+ strcat(abbrev,"Y");
+ else
+ strcat(abbrev,"???");
}
-
return(abbrev);
}