用于法国文化的 C# float.tryparse

标签 c# culture

我有一个用户输入,它可以包含范围从 3.06 或 3,06 的浮点值 我们所处的文化是法语,因此当用户输入 3.06 并且我对该值运行 float.tryParse 时,它​​不会转换为 3.06 到新变量(类型 float)中

// inputUsedAmount.Value from UI is : 3.06
float usedAmount = 0.0f;
float.TryParse(inputUsedAmount.Value, out usedAmount);
// returns false

我可以简单地从“.”替换从用户界面输入的金额。到“,”,但是有没有一种优雅/更好的方式通过 Culture 来做到这一点? 谢谢

最佳答案

您可以使用 overload采用格式提供程序。你可以通过一个法国文化信息:

string value;
NumberStyles style;
CultureInfo culture;
double number;

value = "1345,978";
style = NumberStyles.AllowDecimalPoint;
culture = CultureInfo.CreateSpecificCulture("fr-FR");
if (Double.TryParse(value, style, culture, out number))
   Console.WriteLine("Converted '{0}' to {1}.", value, number);
else
   Console.WriteLine("Unable to convert '{0}'.", value);
// Displays:
//       Converted '1345,978' to 1345.978.

关于用于法国文化的 C# float.tryparse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2722831/

相关文章:

c# - 如何将 PropertyGrid 集合限制为 List<T>

c# - 在 C# 中使用 Pop3 读取电子邮件

wpf - 设置单个 WPF 用户控件的文化

c# - 在 HTTP GET 中绑定(bind) en-GB 日期

c# - CultureInfo.InvariantCulture 简明扼要

.net - 是否可以从Thread.CurrentThread.CurrentCulture获取CSV分隔符? (。净)

c# - 在 C# 中通过设备名称获取蓝牙设备的 COM 端口

C# - 附加调试器失败后如何继续 - System.Diagnostics.Debugger.Launch()

c# - 基于 [Type] 对象转换和类型转换对象

c# - 什么是字符串文化