gpt4 book ai didi

c# - 在文本框中转换数字的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:20:18 24 4
gpt4 key购买 nike

下面的代码属于二分查找算法。用户在 textbox1 中输入数字,然后在 textbox2 中输入他想要使用二进制搜索查找的数字。例如,当我在 textBox2 中输入 16 并将断点放在我注释的行上时,我看到 searchnum 的值为 10。

我认为它会转换为十六进制。我不知道为什么。你能帮帮我吗?

private void button1_Click(object sender, EventArgs e)
{
string[] source = textBox1.Text.Split(',');
int[] nums = new int[source.Length];
for (int i = 0; i < source.Length; i++)
{
nums[i] = Convert.ToInt32(source[i]);
}

string str_searchnum = textBox2.Text;
int searchnum = Convert.ToInt32(str_searchnum); // str_searchnum shows the value 16 but searchnum shows 10
int first = 0;

int last = nums.Length - 1;

while (1 < nums.Length - 1)
{
int mid = (int)Math.Floor(first + last / 2.0);

////if (first < last)
////{
//// break;
////}

if (searchnum < nums[mid])
{
last = mid - 1;
}
if (searchnum > nums[mid])
{
first = mid + 1;
}
else
{
MessageBox.Show(nums[mid].ToString());
}
}
}

最佳答案

检查调试器是否设置为使用十六进制表示法显示值?您可以通过右键单击监 window 口找到此选项。

如果不是这样,请逐步执行整个方法。 str_searchnum 的值是多少?

虽然我个人更喜欢 int.TryParse(),但 Convert.ToInt32() 应该经过充分测试并且不进行任何基础转换。

关于c# - 在文本框中转换数字的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com