以文本方式查看主题 - ╋艺 镇╋ (http://wdystv.com/bbs/index.asp) -- ┣◇网站建设&Web语言 (http://wdystv.com/bbs/list.asp?boardid=4) ---- asp 取整函数int 奇怪的问题 (http://wdystv.com/bbs/dispbbs.asp?boardid=4&id=2216) |
-- 作者:admin -- 发布时间:2010/9/3 11:57:55 -- 韩国 change 排练舞蹈 用fix和int都不能得到正确的整数,我的目的是抛弃小数,但是 <br> int: <%=int(2.3*2680)%> <br> fix: <%=fix(2.3*2680)%> 得到的结果都是6163,而不是实际的6164 问题补充: round 会产生四舍五入,所以无法使用 |
-- 作者:admin -- 发布时间:2010/9/3 11:58:10 -- 微软有病,你知道下面的程序结果是什么吗? <br> int: <%=int(23*268)%> <br> int: <%=int(2.3*2680)%> <br> int: <%=int(0.23*26800)%> 输出结果是: int: 6164 int: 6163 int: 6164 为什么2.3*2680进行INT取整会被吃一个? 这里提出一个问题,使用INT、FIX对表达式计算结果进行取整,可能会出现你意料之外的问题,因为计算机内部对小数的表示是使用的定点的科学记数法,比如2.3*2680的计算结果可能是6.1639999E+0003,也就是6163.99999,这时候使用INT进行取整可能会出错,稳妥的取整方式是先四舍五入到小数点后面一位,然后再取整,方法如下: <br> int: <%=int(round(2.3*2680*10)/10)%> 乘以10进行四舍五入之后再除以10,表示四舍五入代小数点后面一位,然后再INT或者FIX取整,这样就不会出现问题了。 |
-- 作者:admin -- 发布时间:2010/9/3 13:24:14 -- 下表是三个函数取值的对比: X INT(X) CINT(X) FIX(X) 3.26 3 3 3 3.76 3 4 3 -3.26 -4 -3 -3 -3.76 -4 -4 -3 另外也可以试一下:round()函数 |