Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

小数位数问题

xin  发表于:2008-08-10 09:10:44  
复制

20.665*6530计算后怎么变成134942.455978394,手工计算是134942.45,也没那么多小数啊

郁闷,access还不如计算器吗?,高手给点解答

 

 

Top
diffy0331 发表于:2008-08-10 10:54:16

把格式改成固定数字,小数点精确到两位即可.如果出现误差,那么是ACCESS四舍五入的误差造成.可用这个函数,在论坛上可以搜索得到


Public Function RoundToLarger(dblInput As Double, intDecimals As Integer) As Double
   
    '执行Round()函数,有可能进位
    '也有可能舍去

 

    Dim strFormatString As String '格式化字符串
   
    '如果是“0”,则返回“0”,否则进行适当的格式化:
    If dblInput <> 0 Then
        strFormatString = "#." & String(intDecimals, "#")
        RoundToLarger = Format(dblInput, strFormatString)
    Else
        RoundToLarger = 0
    End If
   
End Function

 



xin 发表于:2008-08-13 07:45:37

谢谢,可为什么access不能自己解决呢?

 



xin 发表于:2008-08-13 16:44:50
一个简单的乘法问题都解决不了还叫数据库吗?高手还能给个回答吗?越学越没劲

xin 发表于:2008-08-14 08:37:18

自愧,只要把数据类型改为货币或小数就可以了,共同进步。



总记录:4篇  页次:1/1 9 1 :