我使用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; }
}
答案 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()
被赋予string
和float
变量以设置为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!");
}
答案 3 :(得分:0)
我不认为使用float.Parse()会有所不同。试试这个:
Car.tires.front_value_mm = (float)Convert.ToDouble(textBox.Text, new NumberFormatInfo() { NumberDecimalSeparator = "," });