将String值转换为Float - 使用文本框

时间:2017-07-03 19:04:50

标签: c# string textbox floating-point type-conversion

我使用Newtonsoft将对象序列化为json。 应该填充的字段之一是包含数值的字段 - 精确的浮点数。当我在项目中创建一个car对象时,我在构造函数中使用了float。像这样:

n

用户将填充textBox,这是一个字符串,但它应该是一个浮点数。有没有办法转换它?找到这样的东西,但它不起作用

 public class brakes
    {
        public float park_brake { get; set; }
        public float work_brake { get; set; }
        public float discrepancy { get; set; }
    }

4 个答案:

答案 0 :(得分:0)

尝试使用

float f1 = float.Parse(textBox.Text);

修改 - 有效的解决方案......

float f1 = (float)double.Parse(textBox.Text)

答案 1 :(得分:0)

请尝试以下操作:

    public class brakes
    {
        private float _park_brake { get; set; }
        private float _work_brake { get; set; }
        private float _discrepancy { get; set; }
        public string park_brake
        {
            get { return _park_brake.ToString(); }
            set { _park_brake = float.Parse(value); }
        }
        public string work_brake
        {
            get { return _work_brake.ToString(); }
            set { _work_brake = float.Parse(value); }
        }
        public string discrepancy
        {
            get { return _discrepancy.ToString(); }
            set { _discrepancy = float.Parse(value); }
        }
    }

答案 2 :(得分:0)

您要找的是float.Parse()float.TryParse()方法。

float.Parse()获得string,并返回float包含的string值。

float.TryParse()被赋予stringfloat变量以设置为out参数,并返回bool。它比float.Parse()更安全,因为它在解析成功时返回true。这样您就可以检查string是否有效float

不幸的是,float-strings可以使用.,编写,具体取决于您所处的文化。确保您提供Parse-Method的文化与您的文化相匹配正在您的应用程序中使用。你可以从System.Globalization.CultureInfo.CurrentCulture获得它。请务必为输入设置正确的Culture,否则将失败。

以下是一些示例代码:

float value;
if(!float.TryParse(textBox.Text, out value,
        System.Globalization.CultureInfo.CurrentCulture))
{
    MessageBox.Show("Wrong input!");
}

来源:float.Parse() float.TryParse()

答案 3 :(得分:0)

我不认为使用float.Parse()会有所不同。试试这个:

Car.tires.front_value_mm = (float)Convert.ToDouble(textBox.Text, new NumberFormatInfo() {  NumberDecimalSeparator = "," });