回 帖 发 新 帖 刷新版面

主题:不知道大家有没有这样的情况发生

不知道大家有没有这样的情况发生:
把数值作为串的时候的 串算法 a$ 取正整数  哦,且第一个数不为0

input "要输入的一个数值串:",a$
x=val(a$)
b$=str$(x)
if a$=b$ then print "正确!"
if a$<>b$ then print "错误!"

意图:把输入的串 先转为 数值,再把这个数值 转换成 另一个串,让 a$=b$
你们有没有认为 按上面方法就 可以做到啊!
 
就这个问题困扰我一个上午,程序怎么写 返回的都是 错误!
后来我把 a$ 和 b$ 输出到屏幕才发现 b$ 在 a$ 的后一列上,这时我才发现:
b$=" "+a$

我把程序改了 ,通过一个 c$ 来加一下

input "要输入的一个数值串:",c$
b$=" "+c$
x=val(c$)
a$=str$(x)
if a$=b$ then print "正确!"
if a$<>b$ then print "错误!"

终于能 "正确!" 了 

高手们 你知道这是 怎么事吗?


回复列表 (共5个回复)

沙发

str$( )转换后的字符串值前面有一个符号位,
你试试输入一个负数看看。

我比较常用的办法是 ltrim$(str$( )) 去掉前导空格的符号位。

板凳

恩! 这样是最好 方法;  了

3 楼

因为当字符串转换为数值时,会多出一个空格,再转换为字符串时,当然就会和原来的不一样了!

4 楼

因为当字符串转换为数值时,会多出一个空格,再转换为字符串时,当然就会和原来的不一样了!

5 楼

一般要加一个LTRIM$

我来回复

您尚未登录,请登录后再回复。点此登录或注册