C# 为什么我的分区操作返回0?
这是我在这个网站上的第一个问题,谢谢你的帮助。我有一个web应用程序,我正在尝试制作,但每当我进行除法运算时,它总是返回0。最终目标是获得正确的输出并将其显示在我的网页上的标签上,并且每当我执行简单的测试操作(如1+2)时,它都是正确的。这里有一些代码,第一个块指的是网页逻辑本身C# 为什么我的分区操作返回0?,c#,asp.net,C#,Asp.net,这是我在这个网站上的第一个问题,谢谢你的帮助。我有一个web应用程序,我正在尝试制作,但每当我进行除法运算时,它总是返回0。最终目标是获得正确的输出并将其显示在我的网页上的标签上,并且每当我执行简单的测试操作(如1+2)时,它都是正确的。这里有一些代码,第一个块指的是网页逻辑本身 public partial class Length : System.Web.UI.Page { protected void Page_Load(object sender, Ev
public partial class Length : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (IsValid)
{
Conversion convertObj = new Conversion();
double userIntLength = double.Parse(txtLengthInput.Text);
double convertedLength = convertObj.Length;
lblResult.Text = convertedLength.ToString();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlLength.SelectedIndex == 1)
{
lblUnits.Text = "Miles";
}
if (ddlLength.SelectedIndex == 2)
{
lblUnits.Text = "Kilometers";
}
if (ddlLength.SelectedIndex == 3)
{
lblUnits.Text = "Feet";
}
if (ddlLength.SelectedIndex == 4)
{
lblUnits.Text = "Yard";
}
if (ddlLength.SelectedIndex == 5)
{
lblUnits.Text = "Centimeters";
}
if (ddlLength.SelectedIndex == 6)
{
lblUnits.Text = "Inches";
}
}
}
这是业务层逻辑,也是我认为问题所在
public class Conversion
{
double length;
public double Length
{
get
{
double total = (((double) length) / 1.609344);
return total;
}
set
{
length = value;
}
}
}
使用google fu时,每个人都说这是因为数据类型,但所有内容都被转换为双精度,因此我不知道为什么会发生这种情况。您从未为Conversion.Length属性赋值,因此Conversion.Length字段值为0,而0/1.609344仍然为0 您可以将代码更改为
Conversion convertObj = new Conversion();
convertObj.Length = double.Parse(txtLengthInput.Text);
double convertedLength = convertObj.Length;
顺便说一句
在长度获取程序中,您将长度字段强制转换为double,尽管它已经贴花为double。所以这是无用的,你可以简单地写
public class Conversion
{
double length;
public double Length
{
get
{
double total = length / 1.609344;
return total;
}
set
{
length = value;
}
}
}
从不为Conversion.Length属性赋值,因此Conversion.Length字段值为0,而0/1.609344仍然为0 您可以将代码更改为
Conversion convertObj = new Conversion();
convertObj.Length = double.Parse(txtLengthInput.Text);
double convertedLength = convertObj.Length;
顺便说一句
在长度获取程序中,您将长度字段强制转换为double,尽管它已经贴花为double。所以这是无用的,你可以简单地写
public class Conversion
{
double length;
public double Length
{
get
{
double total = length / 1.609344;
return total;
}
set
{
length = value;
}
}
}
您从未在转换类中实际设置长度值,如果默认值为0,那么答案将始终为0您从未在转换类中实际设置长度值,如果默认值为0,那么答案将始终为0您是一个救生员,没错!现在我终于可以继续了。你是个救生员,成功了!现在我终于可以继续了。