Tag: 文化

在C#中解析来自不同文化的数字

我正在编写一些代码来将字符串解析为double,但是这个字符串是从另一台机器传递给我的。 当然,在文化可能不同的地方出现了问题。 所以,机器A可能会发送给我: “0.5” 机器B可能会发给我 “0,6” 因为它在德国并且有着不同的文化。 正确解析这两个输入的最佳方法是什么? 有人建议使用CultureInfo.InvariantCulture作为Convert.ToDouble的参数,但这不会只对我生产上述字符串的地方有帮助,而不是当别人可以发给我不同的字符串时? 我是否正确地认为我需要知道源文化并在尝试转换之前更改Thread.CurrentThread.CurrentCulture以匹配?

如何在KeyDown事件中检测NumberDecimalSeparator(C#)

我正在尝试查看用户是否在文本框中按了小数点分隔符,并根据其他参数允许或禁止它。 NumberdecimalSeparator返回46或’。’ 在我的美国系统上。 许多其他国家使用’,’作为分隔符。 当我按下句点时,KeyDown事件将KeyValue设置为190。 我只是继续寻找逗号/句号,还是有更好的方法?

如何比较人物(尊重文化)

对于我在这个问题中的答案,我必须比较两个字符。 我认为普通的char.CompareTo()方法允许我指定CultureInfo ,但事实并非如此。 所以我的问题是: 如何比较两个字符并指定CultureInfo进行比较?

MVC中的十进制符号问题,C#?

我正在使用MVC 5.0 我在config中设置了文化: 我有一个模型如下: public class MyModel { [DisplayName(“NbatPersent”)] [Range(0, 100)] public double NbatPersent{ get; set; } } MVC在视图中显示NbatPersent值,如22/5 ,当我想提交表单时,表单validation器提醒我The field NbatPersent must be a number. 。 它无法将22/5转换为22.5 如果我输入22.5就可以了,但如果属性有一个转换的值. 到/ 如何将所有数字属性的文化转换为en-US以显示22.5类的值,而不是22/5 。 编辑: 我正在使用@Html.TextBoxFor来显示decimal属性,因为用户应该更改它。

如何在c#中双重解析中处理文化?

我有一个关于如何在解析双精度时处理文化的问题。 在系统中,各种服务器的价格信息汇集在一起​​。 但是,作为输入的数据在文化中有所不同。 200万美元和50美分给予: “2.000.000,50” “2,000,000.50” “2000000.50” “2000000,50” 有没有一种通用的方法来处理这些不同类型的输入?

asp.net中的Convert.ToDateTime问题

我有一个应用程序在西class牙语服务器中没有任何问题。 当我将应用程序上传到在线服务器(英文窗口)时,我使用Convert.ToDateTime和Convert.ToInt32获得exception(类型为“输入字符串不是有效的Datetime / Int32”)。 是否有任何web.config行可以帮助我解决这个问题? 我尝试用西class牙文化添加全球化元素,但没有奏效。 你能帮我个忙吗? 提前致谢。 Josema。

在C#中循环使用不同语言/文化的嵌入式资源

从这个问题的一个层面来看,存储所有(并循环)可用资源和相关文化的方式是什么,以允许用户选择特定文化? 进一步说明: 假设有三个资源文件: GUILanguage.resx GUILanguage.fr.resx GUILanguage.it.resx 我可以在每个名为LanguageName的字符串中有一个字符串。 我如何能够以编程方式循环遍历不同的LanguageName值以列出它们(例如列表框)? 编辑:WinForms项目,嵌入式资源。

本地化表和entity framework

我有一个场景,我需要在我的数据库中的对象的本地化值。 假设您有一个可以创建动物的应用程序,如果用户是英语,动物的“名称”属性的值将在UI中输入为“猫”,而它将以法语输入为“聊天”。 动物培养表将包含指向父表中相同动物的2条记录。 当读回值时,如果用户文化中不存在“名称”的值,则将使用默认值(最初创建对象的值)。 下图演示了如何在SQL中存储数据: 我正在尝试使用entity framework将此模式映射到对象模型,我对于解决问题的最佳方法有点困惑。 EF适合这个吗? 我应该使用EF4吗? .NET RIA Services将使用此EF模型。 谢谢, Pierre-Yves Troel

C#BackgroundWorker的文化

我想为整个应用程序设置文化。 我尝试了以下方法: Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(wantedCulture); Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(wantedCulture); Application.CurrentCulture = CultureInfo.CreateSpecificCulture(wantedCulture); 它适用于当前线程,但稍后我创建并启动后台工作线程。 当我创建worker时,当前线程使用wantedCulture执行,但工作线程将使用我的计算机文化运行。 为整个应用程序设置文化的任何想法?

OleDB读取Excel十进制值

我使用OleDB Ace 12来读取包含带小数值的列的Excel(xslx)表。 当我在PC上打开Excel工作表时,十进制值的格式正确为1.850,50 (使用逗号作为小数分隔符的NLD文化) 当我使用OleDB(C#4.0)读出Excel表格时,该字段的字符串值始终为1,850.50 (美国格式) 我已经尝试设置我填充的DataSet的Locale,设置currentthread的文化等等,但是填充了OleDB适配器的DataSet总是返回US格式的小数。 我可以在阅读时更改格式化值的方式吗? 或者无论如何它总是美国格式?