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

[数值计算] 批处理如何实现超大数除法运算?

本帖最后由 pcl_test 于 2016-9-28 22:06 编辑

各位前辈:
      在DOS下,想通过BAT写一个简单的除法运算,但是DOS只支持32位运算,超过32位就会有问题。
      希望BAT实现此功能,最好精确到小数点后两位,请前辈、高手指教,谢谢啦!!!

      如下为我在运行效果:
      C:\Documents and Settings\user>set /a tmp=998555947008/1000202272768
         无效数字。数字精确度限为 32 位。

回复 2# terse


    谢谢您,功能实现了!太厉害了!!!!

TOP

回复 2# terse


    前辈,能否把这算法做成一个方法(公函),用的时候,只需要调用就可以~~~
   
    如:call  :Get_XXXX  bcs cs jg  (bcs被除数、cs除数、jg结果)

TOP

回复 6# terse


    谢谢,非常感谢您!
  现在想在for循环体内调用division方法,对各磁盘使用率进行计算,并显示各磁盘的使用率,但在调用的时候有点问题,不知调用是否需要for循环实现??请高手指点!

@echo off
setlocal enabledelayedexpansion
echo 11111111111
for /f "skip=1 tokens=1,2,3 delims= " %%i in ('wmic logicaldisk where "drivetype=3" get name^,size^,freespace') do (
set /a n+=1
echo 盘符 %%j 剩余:%%i 空间%%k
set  AAA=%%i
set  BBB=%%k
rem 循环取值
call:division !AAA! !BBB! quot 2 &echo 盘符%%j  剩余为%%j  使用率为%quot%
)
pause

TOP

返回列表