Determine decimal separator (comma vs point)

Andre via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Mar 7 05:20:06 PST 2016


On Monday, 7 March 2016 at 12:29:39 UTC, Andre wrote:
> Hi,
>
> I execute an external application and get some decimal numbers:
>
> auto p = execute(["curl", "-o", "/dev/null", "-s", "-w",
> 		"%{time_namelookup}:%{time_appconnect}:%{time_redirect}:%{time_starttransfer}:%{time_pretransfer}:%{time_connect}:%{time_total}",
> 		url]);
>
> On my windows system, the decimal separator is "," therefore I 
> want
> to replace the "," with "." to avoid exceptions while 
> converting the value to!double.
>
> I thought following coding should return "," on my OS because 
> it is set in the region settings but "." is returned:
>
> import core.stdc.locale;
>
> auto lConv = localeconv();
> char decSeparator = *lConv.decimal_point;
>
> How can I determine the correct decimal separator?
>
> Kind regards
> André

I just found the answer:

lconv* lc;
setlocale(LC_NUMERIC, "");
lc = localeconv();
writeln(to!string(lc.decimal_point));


More information about the Digitalmars-d-learn mailing list