2014-02-18 42 views
0

我遇到過這個帖子,Format Number like Stack Overflow (rounded to thousands with K suffix),它解釋瞭如何獲取一個數字並在後端添加後綴,以便在保留含義的同時縮短大量數量並佔用更少空間。 SO在各個地方使用相同的基本邏輯。用於格式化數字和本地化的縮寫

我想使用類似的邏輯,但我注意到這個解決方案部分是英語特定的。後綴是英文字母(m = million,b = billion)和度量標誌(k)的混合體,我想知道如何重寫它以便其可用於其他語言本地化。

例如在它的格式數字是這樣的:
1.1k = 1,100萬。這使用kmetric kilo symbol來表示數千。
1.4m = 1,400,000,000。這使用字母m來自英文單詞百萬來表示數百萬。
1.6b = 16,000,000,000,000。這使用字母b來自英文單詞billion來表示數十億。

我的問題是:
1)指標符號像ķ中號,和所有文化識別? (wikipedia暗示它適用於除美國以外的所有人,但我有疑惑)
2).Net BCL中是否有某些東西可以用於爲任何給定語言獲取適當的單個或多個字母組合,以表示數百萬和像這樣的數十億目前正在用英語進行?


我想到了剛剛使用所有指標的符號,但,因爲我從美國我不會註冊數十億我;)
1.1K
1.4M
1.6G

如果公制符號在外部被普遍認可的美國人,那麼上面也許適合每個人,而美國是唯一使這個簡單的if/else語句的特殊雪花。

手指交叉,那些用非英語語言說話和寫作的人可以對此作出響應。

+0

這些前綴是國際標準的一部分,你可以視其爲文化不變。 http://physics.nist.gov/cuu/Units/prefixes.html – Jodrell

+0

更普遍http://en.wikipedia.org/wiki/Metric_prefix,我相信這些前綴是獨立於語言的。 – Jodrell

回答

0

介紹文化特定和/或一般單位。在最簡單的情況下,它只是一個因素,例如:

ft = m * 3。2808

將您的數據以默認單位存儲在數據庫中,並根據文化計算出不同的值,並在其末尾添加單位。

關於k,在俄羅斯它成爲К,所以你有本地化單位。

在一些遊戲中有非stards單位,例如,1kkk,但它看起來像人民是很容易習慣的(因爲他們是合乎邏輯的),所以另一種方法是將用戶到你單位。在這種情況下,應該清楚或明確記錄單位意味着什麼。

再舉一個例子,在電子,1K5將意味着1.5 KOhm

+0

本地化後綴是一個好主意。我只是將我的整個網站本地化,所以這可能是可行的。我真的正在尋找已經在.Net BCL中進行了本地化的東西,而不是自己跟蹤/映射這些東西。 – TugboatCaptain