2010-07-30 76 views

回答

9

基本的目的是本地化应用程序。例如,在美国,大量带有小数点的分隔符通常会写成:“1,234.56”。在欧洲大部分地区,相同的数字通常会写成:“1.234,56”。

语言环境允许您将有关此类格式(以及其他国家/地区,语言,文化等因素)的信息隔离到一个地方。例如,我可以使用:

std::locale loc(""); 
std::cout.imbue(loc); 

std::cout << 1234.56; 

未命名的区域(“”)是特殊的:它会自动挑选出任何区域的用户已经配置。当我运行这个代码时,我得到的输出是:“1,234.56”。其他人可以运行完全相同的代码,但如果他们的环境配置为其他约定,则可能会得到“1.234,56”或“1 234,56”等。

因此,大部分语言环境购买我们(在这种情况下)正在编写一个单独的数字,以便为特定的受众适当地设置数字格式。当然,语言环境有许多“方面”,每个方面都涵盖了单独的......本地化方面,如格式化数字,格式化货币,确定小写或大写字母等。 。