批量舍入前 3 位小数
Round up the first 3 decimals in batch
我还没弄清楚如何四舍五入到小数点后三位。
跟这个很像this
小数总是不同的,有时是 5,有时是 15。但它必须四舍五入到 3 位小数。
使用它来生成文件大小:
for /f "delims=" %%a in ('powershell %FileSize% / 1048576') do (set SizeMB=%%a)
有没有正确简单的方法来四舍五入小数点?
提前致谢。
如果我理解,可能需要:
将"delims="
改为"tokens=1,2"
取第一个的结果并放入下一个分成两部分
- 取第1位
%%i
为整数变量
- 取
%%j
加000(防止"x,000"
有些像"x, "
)000%_Size_:~0,3%
- 取子串最后3个字符组成十进制值
%_Sizedec:~3%"
- 连接
%%I
+ 最后 3 %%i,%_Sizedec:~3%"
:
set FileSize=98888765
for /f "tokens=*" %%a in ('powershell %FileSize% / 1048576') do (
for /f "tokens=1,2 delims=," %%i in ('echo/%%a') do (
set _Size_=%%j
set _SizeDec=000%_Size_:~0,3%
set "_SizeMB=%%i,%_SizeDec:~3%"
)
)
echo/%_SizeMB%
我还没弄清楚如何四舍五入到小数点后三位。
跟这个很像this
小数总是不同的,有时是 5,有时是 15。但它必须四舍五入到 3 位小数。
使用它来生成文件大小:
for /f "delims=" %%a in ('powershell %FileSize% / 1048576') do (set SizeMB=%%a)
有没有正确简单的方法来四舍五入小数点?
提前致谢。
如果我理解,可能需要:
将
"delims="
改为"tokens=1,2"
取第一个的结果并放入下一个分成两部分
- 取第1位
%%i
为整数变量 - 取
%%j
加000(防止"x,000"
有些像"x, "
)000%_Size_:~0,3%
- 取子串最后3个字符组成十进制值
%_Sizedec:~3%"
- 连接
%%I
+ 最后 3%%i,%_Sizedec:~3%"
:
set FileSize=98888765
for /f "tokens=*" %%a in ('powershell %FileSize% / 1048576') do (
for /f "tokens=1,2 delims=," %%i in ('echo/%%a') do (
set _Size_=%%j
set _SizeDec=000%_Size_:~0,3%
set "_SizeMB=%%i,%_SizeDec:~3%"
)
)
echo/%_SizeMB%