我想为该类或整个应用程序设置默认文化信息.
例如在土耳其3,2 =英语3.2
所以应用程序使用我的本地,但我希望它作为默认使用
System.Globalization.CultureInfo.InvariantCulture
Run Code Online (Sandbox Code Playgroud)
如何将其设置为特定类或整个应用程序的默认值
如何识别操作系统的语言CultureInfo?例如,如果Windows中的语言设置为法语,我需要识别法语并加载fr资源文件数据.
我需要在SQL服务器中存储多种货币.我知道SQL不支持所有不同类型的货币(除非我将其存储为字符串,但我不想这样做).
我的想法是将所有值从他们的货币格式转换为标准的双倍并存储它.然后在显示时根据文化信息重新格式化.但是,我尝试过做类似的事情
var cultureInfo = new System.Globalization.CultureInfo("en-US");
double plain = return Double.Parse("$20,000.00", cultureInfo);
Run Code Online (Sandbox Code Playgroud)
这似乎永远不会工作它总是抛出一个FormatException.即使删除货币符号,只是尝试根据数字单独执行此操作也会做同样的事情.这只是一个例子,我想支持几乎任何类型的货币.
是否有一种标准的方式来剥离货币并将价值变为双倍?
我想显示英镑符号和格式0.00即£45.00,£4.10.我使用以下声明:
<td style="text-align:center"><%# Convert.ToString(Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")), new System.Globalization.CultureInfo("en-GB")) %></td>
Run Code Online (Sandbox Code Playgroud)
但它没有用.问题是什么.
谁能帮我???
我正在为十进制验证器编写一个自定义字符串,需要使用忽略文化的Decimal.TryParse(即不关心输入是否包含"."或","作为小数点分隔符).这是建议的方法:
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out decimal result
)
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚要用什么作为第三个参数.我见过的例子如下:
culture = CultureInfo.CreateSpecificCulture("en-GB");
Decimal.TryParse(value, style, culture, out number)
Run Code Online (Sandbox Code Playgroud)
所以他们创造了一种特定的文化 CultureInfo没有"CreateInvariantCulture"方法,CultureInfo.InvariantCulture不是必需的类型.什么是正确的用法?
该类CultureInfo提供了两种创建方式:
MSDN文档确实略有不同,提到构造函数的一些"Windows文化".但这真的很重要吗?
我应该更喜欢两个中的一个吗?
注意:如果重要的话,我使用的是.NET 3.5版本,我想这样使用它:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
Run Code Online (Sandbox Code Playgroud)
我正在使用.resx文件设计多语言应用程序.
我有一些文件,如GlobalStrings.resx,GlobalStrings.es.resx,GlobalStrings.en.resx等.当我想使用它时,我只需要设置Thread.CurrentThread.CurrentCulture.
问题:我有一个包含所有可用语言的组合框,但我手动加载:
comboLanguage.Items.Add(CultureInfo.GetCultureInfo("en"));
comboLanguage.Items.Add(CultureInfo.GetCultureInfo("es"));
Run Code Online (Sandbox Code Playgroud)
我试过了
cmbLanguage.Items.AddRange(CultureInfo.GetCultures(CultureTypes.UserCustomCulture));
Run Code Online (Sandbox Code Playgroud)
没有任何成功.还尝试了CultureTypes中的所有元素,但是我只获得了一个包含更多我不使用的语言的大列表,或者是一个空列表.
有没有办法只获得支持的语言?
我想更改保存在变量中的波斯数字,如下所示:
string Value="???????";
Run Code Online (Sandbox Code Playgroud)
至
string Value="1036751";
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用像文化信息这样简单的方法来做到这一点?
我的示例代码是:
List<string> NERKHCOlist = new List<string>();
NERKHCOlist = ScrappingFunction(NERKHCO, NERKHCOlist);
int NERKHCO_Price = int.Parse(NERKHCOlist[0]);//NERKHCOlist[0]=???????
Run Code Online (Sandbox Code Playgroud)
<=所以它不能解析为int
这是在我的函数中,它返回列表项中包含波斯数字的列表
protected List<string> ScrappingFunction(string SiteAddress, List<string> NodesList)
{
string Price = "null";
List<string> Targets = new List<string>();
foreach (var path in NodesList)
{
HtmlNode node = document.DocumentNode.SelectSingleNode(path.ToString());//recognizing Target Node
Price = node.InnerHtml;//put text of target node in variable(PERSIAN DIGITS)
Targets.Add(Price);
}
return Targets;
}
Run Code Online (Sandbox Code Playgroud) 我有一个以印度为基础的应用程序,我将文化设置为:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN");
上面的代码是在调用Window - InitializeComponent方法之前设置的.
这仍然是在所有TextBox中显示$作为CurrencySymbol.
如果我将TextBox绑定如下,则显示"Rs".作为CurrencySymbol:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN");
Run Code Online (Sandbox Code Playgroud) 在波斯语中打印c#DateTime最简单的方法是什么?目前我正在使用:
static public string PersianDateString(DateTime d)
{
CultureInfo faIR = new CultureInfo("fa-IR");
faIR.DateTimeFormat.Calendar = new PersianCalendar();
return d.ToString("yyyy/MM/dd", faIR);
}
Run Code Online (Sandbox Code Playgroud)
这引发了异常
不是给定文化的有效日历