Тема: CMD/BAT: Расчет до сотых
Добрый день!
Подскажите, как можно заставить batch до сотых?
Пример:
1/3 мне выдает 0, как можно сделать 0,33. Может есть сторонние средства?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Добрый день!
Подскажите, как можно заставить batch до сотых?
Пример:
1/3 мне выдает 0, как можно сделать 0,33. Может есть сторонние средства?
Подскажите, как можно заставить batch до сотых?
Позволю себе процитировать классика:
- Математически.
Может есть сторонние средства?
Была где-то тулза отечественных разработчиков.
К сожалению, работает далеко не у всех - плагинов каких-то требует.
А в большинстве случаев, при попытке запуска из-под UserMode приводит к BSOD'у (скорее всего из-за отсутствия драйвера). ![]()
Но возможно, всё зависит от Операционной Среды.
умножить числитель на 100 не предлагать ?
smaharbA
пробовал, но у меня так и не вышло, думал может другие способы есть.
set /a x="100 * 1 / 3"
echo 0.%x%
а можно пример с процентами, 1/3=33,33%?
и у меня может быть ситуация 3/2=150%,00
типа того ?
echo off
setlocal ENABLEDELAYEDEXPANSION
set x=999
set y=39999999
set d=0
call :len "%y%%d%"
call :len "%y%"
set/a "n=%len% + %d%"
if %n% gtr 8 echo Количество знаков превышает воможности вычисления, поправимо, но не так
set /a "len=%len% + %d%"
set z=1
for /l %%i in (1,1,!len!) do set z=!z!0
set /a "z=%z% * x / y"
set /a "len=%len% - %d%"
for /l %%i in (1,1,!len!) do set z=0!z!
echo 0.%z%
exit /b
:len (string) {
@@rem Процедура определения длины строки
@@rem
setlocal
set opt=%~1
set opt=%opt:"='%
set out=%~0
if "%out:~0,1%"==":" (
set out=%out:~1%
) else (
set out=out
)
set /a n=0
:loop_len
if not "%opt%"=="" (
set opt=%opt:~1%
set /a n=%n%+1
goto loop_len
)
endlocal & set /a %out%=%n%
exit /b 0
}допустим,
x=1
y=3
мне выдает 0.03, честно говоря, как это можно исправить, мне надо получить 33,3%
соглашусь код не верен, но смысл не меняется
разобрался. в чем была проблема. В батниках используется целочисленная 32 битная со знаком арифметика, т.е. максимально возможное число, с которым батники смогут что-то сделать это: -2147483648 и 2147483647
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться