以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Format定义的两位小数值 对应的字段属性类型应该选择什么类型呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187547) |
-- 作者:cnsjroom -- 发布时间:2023/7/25 14:49:00 -- Format定义的两位小数值 对应的字段属性类型应该选择什么类型呢? dr("A总分")=Format((((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(dr("A弃权")*0.3))/dr("A有效"))*100,"00.00") dr("B总分")=Format((((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(dr("B弃权")*0.3))/dr("B有效"))*100,"00.00") dr("总分")= Format((dr("A总分")+dr("B总分"))/2,"00.00") Format定义的两位小数值 对应的字段属性类型应该选择什么类型呢? sql数据库中是float 总提示小数位数大于精度数……怎么解决呢?
|
-- 作者:有点蓝 -- 发布时间:2023/7/25 14:51:00 -- 高精度。找个外部表,添加一个高精度列,然后到数据库里看看就知道数据库里是什么类型了 |
-- 作者:cnsjroom -- 发布时间:2023/7/25 15:05:00 -- 回复:(有点蓝)高精度。找个外部表,添加一个高精度... 老师 按照提示: 在狐表中设定高精度类型后 在sql中对应的数据类型是numeric(28, 4) dr("A总分")=Format((((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(dr("A弃权")*0.3))/dr("A有效"))*100,"00.00") dr("B总分")=Format((((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(dr("B弃权")*0.3))/dr("B有效"))*100,"00.00") dr("总分")= Format((dr("A总分")+dr("B总分"))/2,"00.00") 运行提示错误 System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.ArgumentException: 输入字符串的格式不正确。不能在 A总分 列中存储 <NaN>。所需类型是 Decimal。 ---> System.FormatException: 输入字符串的格式不正确。 有没有办法解决A总分 B总分 总分 三个字段都是保留两位小数呢 比如98.99
|
-- 作者:有点蓝 -- 发布时间:2023/7/25 15:18:00 -- 这个提示应该是出现了除以0的操作,先判断一下除数,不等于0再除 |