找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22585|回复: 4

[数值计算] BAT脚本做系统内存大小平方根运算错在哪里?

[复制链接]
发表于 2012-9-10 16:08:21 | 显示全部楼层 |阅读模式
本帖最后由 wosliming 于 2012-9-11 10:18 编辑

想实现对当前系统内存大小做平发根处理
@echo on
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=4 delims= " %%i in ('systeminfo^|find "Total Physical Memory"') do (
  set str=%%i
)
  set str=%str:,=%
  set a=%str%,a*=1125,b=a
  for /l %%a in (1,1,100) do set /a b=(b+a/b)/2
echo %b:~,-2%
pause

报Divide by zero error,是公式哪里不对吗??
发表于 2012-9-10 20:23:39 | 显示全部楼层
多加几个echo,随时观察一下各个变量的值,看看是从什么地方开始诡异的
 楼主| 发表于 2012-9-10 20:53:56 | 显示全部楼层
错在了数值的千分位标点上,自动添加的,下一次引用的时候会认为小数点
发表于 2012-9-11 06:21:51 | 显示全部楼层
回复 3# wosliming


    把逗号替换掉就行了
 楼主| 发表于 2012-9-11 09:54:37 | 显示全部楼层
本帖最后由 wosliming 于 2012-9-11 10:18 编辑

回复 4# forfiles


想实现对当前系统内存大小做平发根处理
@echo on
setlocal ENABLEDELAYEDEXPANSION
  for /f "tokens=4 delims= " %%i in ('systeminfo^|find "Total Physical Memory"') do (
  set str=%%i
)
   set str=%str:,=%
   set a=%str%,a*=1125,b=a
   for /l %%a in (1,1,100) do set /a b=(b+a/b)/2
echo %b:~,-2%
pause

报Divide by zero error,是公式哪里不对吗??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 14:13 , Processed in 0.016758 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表