Board logo

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

作者: wosliming    时间: 2012-9-10 16:08     标题: BAT脚本做系统内存大小平方根运算错在哪里?

本帖最后由 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,是公式哪里不对吗??
作者: forfiles    时间: 2012-9-10 20:23

多加几个echo,随时观察一下各个变量的值,看看是从什么地方开始诡异的
作者: wosliming    时间: 2012-9-10 20:53

错在了数值的千分位标点上,自动添加的,下一次引用的时候会认为小数点
作者: forfiles    时间: 2012-9-11 06:21

回复 3# wosliming


    把逗号替换掉就行了
作者: wosliming    时间: 2012-9-11 09:54

本帖最后由 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,是公式哪里不对吗??




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2