Hacker News new | ask | show | jobs
by legulere 489 days ago
Microsoft Excel is the worst offender here. When you're on a locale with , as a decimal point it's not able to read CSVs with . as a decimal point. It uses ; instead of , as a field separator.

Delegating parsing user input is a good idea, but sometimes the input methods you can rely on just don't cut it.

By the way: The international way to express a decimal separator is a (thin non-breaking) space. There's no misunderstanding possible.

4 comments

> By the way: The international way to express a decimal separator is a (thin non-breaking) space. There's no misunderstanding possible.

According to whom? The CGPM recommends thin spaces as thousands separators, and either points or commas as decimal separators. NIST, ISO, etc. generally copy this, sometimes stipulating the decimal separator as one or the other.

This is a relic from the olden times were application data was rarely exchanged across locales, and people expected software to conform to the local conventions (and they largely still expect it). Microsoft never changed this because it would have broken (and would still break) a vast number of systems and workflows.
> decimal separator is a (thin non-breaking) space

i really hope you mean thousands separator ...

If you import the data from a file you can select the separator
You can in libreoffice, but not excel. You _must_ change your locale. I went down this rabbit hole a few weeks ago trying to open some Dutch datasets.
You can in excel: https://superuser.com/a/407085

Also, I believe you can change the default separator in Settings somewhere.

I don't know if you noticed the date on that was 2012 and it is currently 2025; along with my comment mentioning "rabbit hole, weeks ago" but all of those settings no longer exist.
I just opened Excel M365, opened per Data -> From Text/CSV a csv file and coulds chose the delimiter.

I tested semicolon and comma and in both cases the autorecognition selected the correct delimiter but I could change it to equal sign, space, tab, user defined.

You can't change the decimal separator, but the field delimiter is possible.