以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 算法溢出 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=169825) |
-- 作者:刘林 -- 发布时间:2021/7/2 7:02:00 -- 算法溢出 dim ks as integer Dim kls As DataRow = DataTables("成绩").Find(filter) If kls Is Nothing messagebox.show(tb.Current("考号")) kh = val(tb.Current("考号")) messagebox.show("问题0.24") Dim nj As String = tb.current("年级") messagebox.show("问题0.25") 原来好好的代码,现在出现 kh = val(tb.Current("考号")) 到这句时出现算法溢出,考号为字符字段。 请问老师是什么情况?谢谢
|
-- 作者:有点蓝 -- 发布时间:2021/7/2 8:38:00 -- val的结果是双精度类型,有效数字为15位,值范围大约是:-1.79E+308 ~ +1.79E+308。应该是考号值超出了这个范围。 如果不需要用来做四则计算等数学功能的数据,建议还是使用字符串,没有必要使用数值型处理
|
-- 作者:刘林 -- 发布时间:2021/7/3 10:22:00 -- 现在就是要进行数值处理,除了val外,还有什么方式将数字型字符转成整型数据? |
-- 作者:有点蓝 -- 发布时间:2021/7/3 10:54:00 -- 改为long dim ks as long = clng(tb.Current("考号")) 我想象不出来,考号居然要做加减乘除运算?还不如直接把考号列设置为整数列
[此贴子已经被作者于2021/7/3 10:54:30编辑过]
|
-- 作者:刘林 -- 发布时间:2021/7/3 11:16:00 -- 老师,有这种情况,学校已打印了所有考号信息表,坐位号等,还没考试前突然转来一学生要参加考试,就要追加一个学生报名信息,为不动其他已打表格,就追加到最后,由于前面数据结构没有想到做成整数,所有就存在上面的问题,现在改为clng就可以了,但有点不理解的是为什么原来没这个问题 |
-- 作者:有点蓝 -- 发布时间:2021/7/3 11:43:00 -- 之前的考号没有超出范围 我理解考号应该是和编号一类的东西,无法理解要用来做加减乘除运算
|
-- 作者:刘林 -- 发布时间:2021/7/3 12:07:00 -- 因为表的最追加一个,在最大考号上增加1作为追加的学生的考号 [此贴子已经被作者于2021/7/3 12:07:33编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/7/3 14:16:00 -- 灵活一点,比如获取后8位+1,和系统编号生成规则一样 |