Ken*_*son 9 c# string formatting cultureinfo
我有String.Format的问题.除了第一个整数之外,以下代码正确格式化了字符串.目前的文化被定为伊拉克阿拉伯语(ar-IQ):
int currentItem= 1;
string of= "??";
int count = 2;
string formatted = string.Format(CultureInfo.CurrentCulture, "{0}{1}{2}", currentItem, of, count);
Run Code Online (Sandbox Code Playgroud)
文本从右到左格式化,2转换为阿拉伯数字,但1不是.
有任何想法吗?
转换数值的默认行为是“上下文”,这基本上意味着如果数字以阿拉伯语进行,则它们以阿拉伯语(或另一个“非拉丁”字符)显示,如果不是,则它们以“标准”欧洲显示数字。
不过,您可以很容易地改变这种行为:
var culture = CultureInfo.CurrentCulture;
culture.NumberFormat.DigitSubstitution = DigitShapes.NativeNational; // Always use native characters
string formatted = string.Format(culture, "{0:d}{1:d}{2:d}", currentItem, of, count);
Run Code Online (Sandbox Code Playgroud)
这应该如您所期望的那样工作 - 有关MSDN 的更多详细信息。
| 归档时间: |
|
| 查看次数: |
4326 次 |
| 最近记录: |