以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这个算法有啥区别?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=177405)

--  作者:blackzhu
--  发布时间:2022/5/20 13:50:00
--  这个算法有啥区别?

Dim t As String = "980 * 4, 980.6 * 2".Replace(",", "+")
Output.Show(t)
Output.Show(Val(t))


我也是晕了 这个计算有啥问题


Output.Show(Val(980 * 4+ 980.6 * 2))  跟这个有啥区别


--  作者:有点蓝
--  发布时间:2022/5/20 13:53:00
--  
我觉得没有区别。如果字符串不是写死的,可能来自其它变量表格等,使用replace情有可原。如果是写死的字符串就没有必要了
--  作者:有点蓝
--  发布时间:2022/5/20 13:59:00
--  
看漏眼了,少了双引号,下面这个就一样了

Output.Show(Val("980 * 4+ 980.6 * 2")) 

--  作者:有点蓝
--  发布时间:2022/5/20 14:01:00
--  
如果要做表达式计算,应该使用Eval吧,不是val
--  作者:blackzhu
--  发布时间:2022/5/20 14:02:00
--  
以下是引用有点蓝在2022/5/20 13:59:00的发言:
看漏眼了,少了双引号,下面这个就一样了

Output.Show(Val("980 * 4+ 980.6 * 2")) 


加引号和不加引号算出来的金额是一样的


--  作者:有点蓝
--  发布时间:2022/5/20 14:08:00
--  
不可能的,又不是eval

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2022/5/20 14:08:56编辑过]

--  作者:blackzhu
--  发布时间:2022/5/20 14:13:00
--  
好久没写代码了 用错函数了  应该是 eval
--  作者:blackzhu
--  发布时间:2022/5/20 14:53:00
--  
奇怪 不应该呀 想不明白了


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20220520145240.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/5/20 15:06:00
--  
有特殊符号?

Output.Show("|" & t & "|")
Output.Show(t.length)

--  作者:blackzhu
--  发布时间:2022/5/20 15:08:00
--  
原来是有空格