|
ybgts
新手上路

积分 8
发帖 8
注册 2008-12-13
状态 离线
|
『楼 主』:
[求助]数值计算的批处理输入08和09提示无效数字
使用 LLM 解释/回答一下
在下有个问题,可烦死了,请大家帮帮我
批命令如下:
@echo off
set /p var=请输入一个数值:
echo %var% >1.txt
set /a var2=%var%+101
echo %var2% >>1.txt
pause
问题:输入任何数值都能正常显示出来,但偏偏输入08或09这两个数值就出问题!
提示为:无效数字.数字常数只能是十进制.............
而输入8或9就没问题,但我要前面的0
谢谢帮忙!!
───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"为什么偏偏不能输入08和09?"不利于论坛搜索
处罚:论坛新人免于积分处罚
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{27314}反面教材:本论坛“精彩”标题小集
{32667}愤怒:那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────
Last edited by HAT on 2009-2-10 at 00:55 ]
|
|
2009-2-10 00:34 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2009-2-10 00:50 |
|
|
ybgts
新手上路

积分 8
发帖 8
注册 2008-12-13
状态 离线
|
|
2009-2-10 00:59 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第 4 楼』:
使用 LLM 解释/回答一下
一位数:08 09
可以这样
set /a var2=0x%var%+101
二位数:018 019
可以这样
set /a var2=1%var%-1000+101
三位数:0118 0119
可以这样
set /a var2=1%var%-10000+101
如果随机的,前有N个0,就麻烦一点:
:lp
if '%var:~0,1%=='0 set var=%var:~1%&goto :lp
set /a var2=%var%+101
当然,这样,var原来的值就被破坏了,去掉了0
Last edited by netbenton on 2009-2-11 at 17:21 ]
|

精简
=> 个人 网志  |
|
2009-2-10 01:22 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2009-2-10 02:41 |
|
|
313885174
中级用户
  
积分 206
发帖 100
注册 2007-7-9
状态 离线
|
『第 6 楼』:
使用 LLM 解释/回答一下
set vara=%var:~1,32%
最高精确是32位
前面多2个0要怎么解决呢?
要是N个0呢?
|
|
2009-2-11 18:57 |
|
|
netbenton
银牌会员
     批处理编程迷
积分 1916
发帖 752
注册 2008-12-28 来自 广西
状态 离线
|
『第 7 楼』:
使用 LLM 解释/回答一下
:lp
if '%var:~0,1%=='0 set var=%var:~1%&goto :lp
set /a var2=%var%+101
|

精简
=> 个人 网志  |
|
2009-2-11 19:21 |
|
|
HAT
版主
       
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2009-2-11 20:04 |
|
|
313885174
中级用户
  
积分 206
发帖 100
注册 2007-7-9
状态 离线
|
『第 9 楼』:
使用 LLM 解释/回答一下
.......好像楼上的方法可以用<img src="images/smilies/face-laugh.png" align="absmiddle" border="0">
Last edited by 313885174 on 2009-2-12 at 12:17 ]
|
|
2009-2-12 12:13 |
|