【发布时间】:2021-11-07 04:33:09
【问题描述】:
好的,我遇到了问题。我在一个文本框中有一个小数点,我试图在一个设定的数字之间进行范围。正如您在图片中看到的,我有一个全刻度值,它使用十进制 2.9995 mV/V 更新 CalCert 上的值。
这里的问题是十进制值必须是 3 mV 的正/负 30。例子。 2.9970 - 3.0030 那是范围。超出范围的任何内容我都需要它来触发警告对话框。我将要使用的代码我不确定为什么它不起作用。
我正在使用 if 语句,但唯一的错误是在 ("3.0031") 部分。
double value = 0;
if (double.TryParse(TxtFullScale.Text, out value))
{
value /= 10000;
}
TxtCalFullScale.Text = string.Format("{0:#.0000}", value) + " " + "mV/V";
if (TxtFullScale.Text >= TxtFullScale.Text.ToString("3.0031"))
{
MessageBox.Show("Full Scale value is in a non conformence state.");
}
else if (TxtFullScale.Text <= TxtFullScale.Text.ToString("2.9970"))
{
MessageBox.Show("Full Scale value is in a non conformence state.");
}
我可以使代码工作到一定程度
if (TxtFullScale.Text == "3.0031")
{
MessageBox.Show("Full Scale value is in a non conformence state.");
}
else if (TxtFullScale.Text =="2.9970")
{
MessageBox.Show("Full Scale value is in a non conformence state.");
}
但是,如果将范围作为3.0032 放入文本中,则它永远不会显示消息框。我在这里错过了什么?
【问题讨论】:
-
您不能将 >= 应用于
string类型的操作数。您应该将它们转换为double,然后您可以比较值。 -
@mohammad:一般来说,
decimal会比double更好;浮点怪异的可能性较小。
标签: c# wpf visual-studio textbox decimal