标题: [数值计算] 【代码分享】批处理整数开平方 [打印本页]
作者: 小程936 时间: 2019-1-5 22:57 标题: 【代码分享】批处理整数开平方
本帖最后由 小程936 于 2019-1-5 23:01 编辑
用法:添加至bat末尾,调用方法call :s 数字
输出值为变量b和errorlevel- :s
- set /a a=%1,b=a/2
- for /l %%a in (1,1,15) do set /a b=(b+a/b)/2
- exit /b %b%
复制代码
bug修正版- 修正bug版
- :s
- if "#%1"=="#" echo 未输入&set b=&exit /b
- set /a a=%1,b=a/2
- if "%a:~0,1%"=="-" echo 负数&set b=&exit /b
- if "%a%"=="0" set b=0&exit /b 0
- for /l %%a in (1,1,15) do set /a b=(b+a/b)/2
- exit /b %b%
复制代码
经测试,在±21亿的范围内,15次循环b=(b+a/b)/2就足以得出整数结果(截尾取整)。
如果需要计算小数,精度要求不高,也可以勉强做到。比如保留二位有效数字(截尾取整)
- set /p a=开平方数
- set /a a*=10000,b=a/2
- for /l %%a in (1,1,15) do set /a b=(b+a/b)/2
- echo %b:~0,-2%.%b:~-2%
复制代码
作者: ivor 时间: 2019-1-6 12:17
本帖最后由 ivor 于 2019-1-6 19:56 编辑
看看热闹
复制代码
作者: yhcfsr 时间: 2019-1-6 13:16 标题: 看看热闹
本帖最后由 yhcfsr 于 2019-1-6 13:48 编辑
- @set @n=0/*&echo off
- cscript -nologo -e:jscript "%~f0"
- pause&exit /b */
-
- WSH.Echo(Math.pow(8.0,1/3));
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |