[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 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,是公式哪里不对吗??

多加几个echo,随时观察一下各个变量的值,看看是从什么地方开始诡异的

TOP

错在了数值的千分位标点上,自动添加的,下一次引用的时候会认为小数点

TOP

回复 3# wosliming


    把逗号替换掉就行了

TOP

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

TOP

返回列表