中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 13:00
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » [共同参与][挑战思路][批处理处理浮点运算]
可打印版本  45,404 / 136
第121楼 不得不爱 发表于 2006-10-23 03:55
超级版主 发帖 2,044 积分 5,310 来自 四川南充
呵呵,不是说明,是用了中文的标号,有了中文标号连说明都可以省了!
第122楼 vkill 发表于 2006-10-23 03:57
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by qwe1234567 at 2006-10-23 03:55:
呵呵,不是说明,是用了中文的标号,有了中文标号连说明都可以省了!

中文的也可以,还没有试过,不知道中文最多支持几个汉字
第123楼 不得不爱 发表于 2006-10-23 04:18
超级版主 发帖 2,044 积分 5,310 来自 四川南充
我这也是第一次用中文的标号,我想应该没有个数限制吧
第124楼 不得不爱 发表于 2006-10-23 04:19
超级版主 发帖 2,044 积分 5,310 来自 四川南充
另外变量也可以是中文
第125楼 vkill 发表于 2006-10-23 04:31
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by qwe1234567 at 2006-10-23 04:18:
我这也是第一次用中文的标号,我想应该没有个数限制吧

字母是8个,我想应该有,测试下看看
第126楼 vkill 发表于 2006-10-23 04:35
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
还真没有限制,呵呵~以后标号用中文了
第127楼 不得不爱 发表于 2006-10-23 04:43
超级版主 发帖 2,044 积分 5,310 来自 四川南充
我试了下,在CMD里字母不只8个(估计是没有什么限制吧,或者是255个),你可以用下面的代码测试下
@echo off
:abcdefghi
set /p a=请输入:
if %a%.==5. (goto abcdefghi) else goto abcdefghi1
:abcdefghi1
echo %a%
pause
第128楼 xycoordinate 发表于 2007-03-04 23:15
中级用户 发帖 228 积分 493 来自 安徽
Originally posted by namejm at 2006-10-4 21:08:
 到目前为止,各位已经找到了CMD下计算浮点数的两种方法:

  方法一:浮点数的整数部分和小数部分分别计算。实现的过程是:整数部分直接相加即可;小数部分稍微有点麻烦:如果小数部分位数不一致,则要以位数最多的那个数为基准,在另外一个数的小数部分补足0,然后再对小数部分作整数的加法;如果相加的结果位数超过了最长的位数,则要向整数部分进1,小数部分的最高位要相应地减1;

  方法二:把整数部分和小数部分重组成一个新数,再对新数进行加法操作,最后把小数点插入原来的位置;

  两种方法各自的优点和缺点:

  方法一:优点:能处理的浮点数的范围很大,只要相加的结果在 (2^32-1.2^32-1) 和 -(2^32-1.2^32-1)之间,都能处理;缺点:大都出现在小数部分,如:若小数部分最高位为08或09都可能出错,要对这两种情况另作处理;小数部分相加结果的位数长度如果超过最长的位数,则要对整数部分做加1、对小数最高位作减1处理;如果扩充到三个或三个以上的浮点数进行加法操作,则进位的问题将更加复杂;

  方法二:优点:不用另行处理08和09的情况,不用考虑进位的问题(看了楼下pengfei的分析,发现这个地方的描述有点问题,具体情况请参阅楼下的描述);缺点:能处理的浮点数范围比较小,相加结果去掉小数点之后新数值的范围在 (2^32-1.2^32-1) 和 -(2^32-1.2^32-1)之间才能成功。


精彩!!!!

日常用的小数多数是"金额",只有2位小数,用"方法二"比较好!

这个帖子对我的启发很大,谢谢大家!!!



[ Last edited by xycoordinate on 2007-3-4 at 10:51 AM ]
第129楼 6622186 发表于 2007-03-10 08:17
高级用户 发帖 411 积分 894
若能改为命令行版本(使用时,输入文件名和相应参数) 就太好了.
第130楼 6622186 发表于 2007-03-10 09:02
高级用户 发帖 411 积分 894
标号也可以用中文, 受教了!
第131楼 netbenton 发表于 2009-04-05 12:29
银牌会员 发帖 752 积分 1,916 来自 广西
到此一游


[ Last edited by netbenton on 2009-4-5 at 10:30 ]
第132楼 czl1378 发表于 2009-04-05 14:46
初级用户 发帖 114 积分 161
4楼的,天书啊。。
但是为什么要在浮点运算上这么深入呢?没见过多少要用到浮点运算的批处理啊。你们这些高手啊,实在太无聊了。
第133楼 netbenton 发表于 2009-04-07 09:01
银牌会员 发帖 752 积分 1,916 来自 广西
改进了一下
第134楼 mmh1 发表于 2009-04-09 00:12
初级用户 发帖 24 积分 20
请问下这句什么意思??
if "%number1:~0,1%"=="." set number1=0%number1%
第135楼 xrw 发表于 2009-05-23 17:47
新手上路 发帖 5 积分 5
请问下这句什么意思??
if "%number1:~0,1%"=="." set number1=0%number1%
上一页  16 7 8 9 10  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023