Округлить первые 3 знака после запятой в партии

Я не смог выяснить, как округлить до 3 десятичных знаков.

Это очень похоже на это

Десятичные дроби всегда изменяются, иногда 5 и другие 15 раз. Но это должно быть округлено до 3 десятичных знаков.

Используя это, чтобы сгенерировать размер файла:

for /f "delims=" %%a in ('powershell %FileSize% / 1048576') do (set SizeMB=%%a)

Есть ли правильный и простой способ округлить десятичные дроби?

Заранее спасибо.

1 ответ

Решение

Если я понимаю, может быть, может понадобиться:

  1. + Изменить "delims=" в "tokens=*"

  2. Возьмите результаты 1-го для и вставьте следующий для разделения на 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%
Другие вопросы по тегам