Rounding numbers in locale friendly way



Hi!

In Maps we display population numbers in the place bubbles (typically
for places like towns, cities, states and so on) based on the
"population" tag from the OpenStreetMap database.

In a some cases, where population numbers are more like estimates, this
number can be rounded, say to the nearest 100k.

Currenly we display the number just a normal integer, using the user's
locale.

So, in a cases, where let's say a city is tagged population=1200000

it would be displayed: 1,200,000 in English (and so on, 1 200 000 e.g.
in Swedish).

I have played with the idea to try to "detect" when it's an estimate.

For example, something like:

if population "an even multiple of 1000000":

display _("%s M") where %s is population / 1000000 with one significant
digit.

if population > 1000000 and "an even mulitple of 100000"

display _("%s M") where %s is population / 1000000 with two significant
digits (e.g. one decimal digit).

otherwise just display the number locale-formatted (like is done
today).

Does this make sense? Or would this assumption that millions "M" is an
appropriate concept cause trouble in some languages?

I guess the these would also be using ngettext (with the even muliples
of one million as "n".

//Marcus



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]