我试图减去两个float格式的变量(float xdiff = x1 - x2;
(,但我得到了错误"无法将类型float?隐式转换为float"。值d,c,s,m,radius,x1,y1,x2,y2
是从windows窗体输入中获得的。
代码如下;
public Nullable<float> d = null;
public Nullable<float> c = null;
public Nullable<float> s = null;
public Nullable<float> m = null;
public Nullable<float> radius = null;
public Nullable<float> x1 = null;
public Nullable<float> y1 = null;
public Nullable<float> x2 = null;
public Nullable<float> y2 = null;
private void Run_Click(object sender, EventArgs e)
{
d = float.Parse(this.downwind.Text);
c = float.Parse(this.crosswind.Text);
s = float.Parse(this.maxcross.Text);
m = float.Parse(this.offset.Text);
radius = float.Parse(this.rad.Text);
x1 = float.Parse(this.x1coord.Text);
y1 = float.Parse(this.y1coord.Text);
x2 = float.Parse(this.x2coord.Text);
y2 = float.Parse(this.y2coord.Text);
float xdiff = x1 - x2;
}
假设您处理了所有NULL场景,下面应该会解决它。
float xdiff = (x1 - x2).Value;
如果x1
和x2
的类型应为float?
,则运算结果x1 - x2
可以为null
(如果乙醚值为null
(。因此,该结果被期望存储在float?
中。可为空的值类型
你应该使用
float? xdiff = x1 - x2;
或者最好的可能是:
var xdiff = x1 - x2; //Using var will automatically decide type of result