| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2421 人关注过本帖
标题:字符型转数值型出错
只看楼主 加入收藏
sjc_ding
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-2-14
结帖率:0
收藏
已结贴  问题点数:20 回复次数:12 
字符型转数值型出错
str2='201901'
c2=val(alltrim(right(str2,2)))+1
c3=alltrim(left(str2,4))+'0'+alltrim(str(c2))   
?c3

想要的结果c3=201902,可是程序运行后是201901
请高手赐教,谢谢!
搜索更多相关主题的帖子: 字符型 数值 出错 结果 运行 
2019-02-14 11:03
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
是201902 没毛病

DO IT YOURSELF !
2019-02-14 11:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:3 
? TRANSFORM(VAL("201901")+1)
2019-02-14 11:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9781
专家分:26837
注 册:2012-2-5
收藏
得分:3 
回复 楼主 sjc_ding
楼主的代码结果完全正确

坚守VFP最后的阵地
2019-02-14 17:25
sjc_ding
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-2-14
收藏
得分:0 
以下是引用sjc_ding在2019-2-14 11:03:40的发言:

str2='201901'
c2=val(alltrim(right(str2,2)))+1
c3=alltrim(left(str2,4))+'0'+alltrim(str(c2))   
?c3

想要的结果c3=201902,可是程序运行后是201901
请高手赐教,谢谢!

c2=val(ltrim(subst(str2,5,2)))+1
改用subst()解决问题,感谢大家!
2019-02-15 09:36
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11759
专家分:43407
注 册:2006-5-13
收藏
得分:3 
楼主的代码有点将简单问题复杂化了,其实可以简化如下:

str2='201901'
c3=alltrim(str(val(str2)+1))   
?c3

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2019-02-15 10:20
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11759
专家分:43407
注 册:2006-5-13
收藏
得分:0 
此类问题最好是将年月分别计算,然后再组合在一起,这样便于处理12月加1时回归1月,然后再年份加1。
如:
Y=2019
M=1
str2=alltr(str(Y*100+M))


活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2019-02-15 10:26
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1526
专家分:2981
注 册:2012-2-29
收藏
得分:3 
回复 7楼 hu9jj
好办法!
2019-02-15 12:56
jyxfp
Rank: 2
等 级:论坛游民
帖 子:23
专家分:81
注 册:2013-2-9
收藏
得分:3 
可以转成日期型再取值
str2='201812'
?Substr(Dtos(Date(Val(Substr(str2,1,4)),Val(Substr(str2,5,2)),1)+31),1,6)  &&得201901
2019-02-15 15:51
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11759
专家分:43407
注 册:2006-5-13
收藏
得分:0 
以下是引用jyxfp在2019-2-15 15:51:20的发言:

可以转成日期型再取值
str2='201812'
?Substr(Dtos(Date(Val(Substr(str2,1,4)),Val(Substr(str2,5,2)),1)+31),1,6)  &&得201901

月份递增不宜用加天数的办法,假设当前是1月31日,加31天之后就会成了3月3日。保险些的办法是用gomonth()函数,但这个函数仅仅是对日期型数据进行处理,如果仅仅需要年月数据,还不如用两个变量更方便些。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2019-02-16 16:24
快速回复:字符型转数值型出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017563 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved