永发信息网

一个关于cmd变量计算的问题 已有有一个名为s的变量,需要将s除以60并保留三位小数后,把计算结果

答案:1  悬赏:0  手机版
解决时间 2021-01-30 18:14
  • 提问者网友:末路
  • 2021-01-30 00:17
一个关于cmd变量计算的问题 已有有一个名为s的变量,需要将s除以60并保留三位小数后,把计算结果
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-01-30 01:01
如果s变量的值不是小数,可以写个函数来调用,例子如下:
@echo off
set a=754
set b=49
call :Div %a% 60 3 c||3为保留的小数点位数,c为返回的变量名
echo %a%/60=%c%
call :Div %b% 60 3 c
echo %b%/60=%c%
pause

:Div dividend divisor [decimal]|[decimal ReturnVar]||@by zj
::不支持小数运算,返回值不进行四舍五入
Setlocal EnableDelayedExpansion
set "dnd=%~1"&set "dsr=%~2"&set "dec=%~3"
if %dsr% equ 0 echo 除数不能是0!&goto :EOF
set/a x=%dnd%/%dsr%
if not defined dec set "dec=8"
if %dec% equ 0 echo %x%&goto :EOF
for %%i in (%dnd:~,1% %dsr:~,1%) do if "%%i"=="-" set/a n+=1
if defined n if !n! equ 1 set "x=-0"
for /l %%i in (1 1 %dec%) do (
set/a dnd=^(a=dnd%%%dsr%^)*10,b=dnd/%dsr%
set "y=!y!!b!"
)
Endlocal&set "%~4=%x%.%y:-=%"&goto :EOF如果s变量的值是小数,那情况就复杂了,若需要可再追问。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯