以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 数值计算的小数问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=37708) |
||||
-- 作者:hudicaca -- 发布时间:2013/7/9 10:53:00 -- 数值计算的小数问题 问题是这样的....两个值相乘.明明是28 * 0.8 =22.4 但是放到textbox 中就变成22.400000000000002了..28 和0.8都是双精度的.怎么避免这个出现,好像换做高精度的就行了,但是我看帮助说不是特殊情况尽量不要用到高精度么???! 我的计算基本都是用到整数 乘以0.8 的.... 菜鸟求解,谢谢啊!!.
[此贴子已经被作者于2013-7-9 10:57:04编辑过]
|
||||
-- 作者:Bin -- 发布时间:2013/7/9 10:57:00 -- 请使用高精度小数 |
||||
-- 作者:hudicaca -- 发布时间:2013/7/9 10:59:00 -- 但是我看帮助说不是特殊情况尽量不要用到高精度么???! 我的表中计算基本都是用到整数 乘以0.8 的....量也很大....我怕会影响运行速度啊 |
||||
-- 作者:Bin -- 发布时间:2013/7/9 11:00:00 -- 没你想象中的那么大的影响,你可以使用大量数据做下测试. |
||||
-- 作者:lsy -- 发布时间:2013/7/9 11:06:00 -- Dim r As Row r = Tables("表A").Current Forms("窗口1").Controls("TextBox1").value = Format(r("第一列") * r("第二列"),"#0.00") |
||||
-- 作者:程兴刚 -- 发布时间:2013/7/9 11:06:00 -- FORMAT() |
||||
-- 作者:hudicaca -- 发布时间:2013/7/9 11:15:00 -- format 的话 如果遇到 .9999999999992这种 不就要出现误差了呀 |
||||
-- 作者:Bin -- 发布时间:2013/7/9 11:17:00 -- 四舍五入 http://www.foxtable.com/help/topics/1440.htm |
||||
-- 作者:hudicaca -- 发布时间:2013/7/9 11:19:00 -- 好吧..还是四舍五入吧.... |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/7/9 11:26:00 -- 表达式的四舍五入:
http://www.foxtable.com/help/topics/0108.htm
|