批量舍入前 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)

有没有正确简单的方法来四舍五入小数点?

提前致谢。

如果我理解,可能需要:

  1. "delims="改为"tokens=1,2"

  2. 取第一个的结果并放入下一个分成两部分

  3. 取第1位%%i为整数变量
  4. %%j加000(防止"x,000"有些像"x, "000%_Size_:~0,3%
  5. 取子串最后3个字符组成十进制值 %_Sizedec:~3%"
  6. 连接 %%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%