"Cannot implicitly covert type float? to float"



我试图减去两个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;

如果x1x2的类型应为float?,则运算结果x1 - x2可以为null(如果乙醚值为null(。因此,该结果被期望存储在float?中。可为空的值类型

你应该使用

float? xdiff = x1 - x2;

或者最好的可能是:

var xdiff = x1 - x2;  //Using var will automatically decide type of result 

最新更新