首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

为什么2个变量使用FormatNumber格式化后用加号不是计算而是连接解决思路

2012-03-30 
为什么2个变量使用FormatNumber格式化后用加号不是计算而是连接a,b在数据库均为数值(字段本身就是numeric

为什么2个变量使用FormatNumber格式化后用加号不是计算而是连接
a,b在数据库均为数值(字段本身就是numeric型)
c=FormatNumber(a,2)+FormatNumber(b,2)

这样后c不是之和,而是做了连接了,如果
c=FormatNumber(a,2)*1+FormatNumber(b,2)*1
才为数值


[解决办法]
我也觉得奇怪.
不过我看了一下手册
有如下描述:
-----------------------
运算符(+)
如果 则
两个表达式都是数值 相加
两个表达式都是字符串 连接
一个表达式是数值,另一个表达式是字符串 相加
-----------------------
FormatNumber 函数

返回表达式,此表达式已被格式化为数值。
-----------------------
这里说的是返回表达,没有说返回数值.

测试:MsgBox(TypeName(FormatNumber(1.55555,2)))
显示:String
说明:FormatNumber()返回的确实是字符串.

测试:MsgBox( "1.5 "*1+1)
显示:2.5
说明:数值型字符串表达式做算术运算时自动被转换成数值类型.

唉,微软的东东就是莫名其妙.
[解决办法]
c=clng(FormatNumber(a,2))+clng(FormatNumber(b,2))

这样才行。

热点排行