未处理ArgumentOutOfRangeException,我没发现有引用错误,但间歇性报这个错误

GuyVincent 2016-01-21 12:36:15
“System.ArgumentOutOfRangeException”类型的未经处理的异常在 mscorlib.dll 中发生
其他信息: startIndex 不能大于字符串长度。

报错提示在第15行,反而第14行没有报错。我已经限制过num1和num2的长度相等,不然就不调用以下方法。
求大神告知。

        //变形补码加法
private string bumajiafa(string num1, string num2)
{
int i;
int jin = 0;
int m, n;
string s = "";
string s1 = binbu(num1).Substring(0,1) + binbu(num1);
string s2 = binbu(num2).Substring(0,1) + binbu(num2);
int len1 = s1.Length;
for (i = len1 - 1;i >= 0;i--)
{
if (i == 2) continue;
m = int.Parse(s1.Substring(i,1));
n = int.Parse(s2.Substring(i,1));
if (m == n)
{
if (jin == 0) s = "0" + s;
else s = "1" + s;
if (m == 0) jin = 0;
else jin = 1;
}
else
{
if (jin == 0) s = "1" + s;
else s = "0" + s;
}
}
s = s.Insert(2, ".");

return s1;
}
...全文
322 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2016-01-21
  • 打赏
  • 举报
回复
num1和num2长度相等又不是意味着s1和s2长度相等
GuyVincent 2016-01-21
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
binbu(num)返回空字符串了
谢谢,我查看过了,是返回的字符串长度缩短了。binbu()是自己写的方法,忘了贴上来了。
GuyVincent 2016-01-21
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
num1和num2长度相等又不是意味着s1和s2长度相等
谢谢,正解!我查看我自己编写的求定点小数补码的方法binbu(),发现运算过程不完全符合预期,特定情况下可能得到不等长字符串。
  • 打赏
  • 举报
回复
binbu(num)返回空字符串了
XPTable的大名,想必C#开发的人都有所耳闻,使用下来确实强大,在表格中添加下拉列表、进度条、图标等非常容易,灵活方便。 XPTable最重要的是开源,可根据自己的需要修改,有bug也可想办法解决,我就对其进行了若干处改进,使其更好用了。源代码写的非常标准,架构设计也很值得借鉴,研读源代码也是个学习提高的过程。真心感谢将如此完美的代码公开分享的人,最为点滴回,也将自己修改后的源码放出,供大家参考,和原作者的贡献比起来,我这点小小的修改就如沧海一粟,不足为道了。 我修改过的代码和解决的问题列示如下: 1、...\Models\Table.cs Line 2118,2153 解决问题:否则在某些情况下(任意调整窗口大小,XPTable的Anchor设置为随窗口大小自适应调整)会抛System.ArgumentOutOfRangeException异常,vScrollBar.LargeChange不能小于0 2、...\Models\Table.cs Line 5598,5606 解决问题:在列头Resizing状态下双击鼠标,应根据该列数据中最长的一行调整当前列宽度,目前仅对TextColumn和NumberColumn有效 3、...\Models\Table.cs Line 6134 解决问题:在列头Resizing状态下单击鼠标,避免OnMouseUp激发列宽的调整。应该双击或者调整宽度后才能激发 4、...\Models\Table.cs Line 6373 解决问题:根据原代码,如果Table允许多选,选中多行后,点鼠标右键将自动选择鼠标所在行,修改后,多选的行依然选中 这个问题借鉴了“恶猫的尾巴”的代码:http://emao.me/tag/XpTable/,在此感谢! 5、...\Models\Table.cs Line 6627 解决问题:鼠标在列头为Resizing图标时,移动到数据区域不会自动变为默认图标 6、...\Models\Table.cs Line 7229 解决问题:解决列头的对齐方式始终是靠左的问题 7、...\Renderers\NumberCellRenderer.cs Line 661 解决问题:为了实现Table.cs的函数CalColumnWidth中实现对NumberColumn列格式化数据宽度的计算

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧