A menos que haja uma razão para dividir o denominador por edfbonus em vez de multiplicar o numerador por ele, é possível evitar o problema do divisor zero reorganizando o cálculo:
set /a "hp = hp - ((atk*arandom*edefbonus)/(edef*6))"
Os parênteses externos e as aspas são desnecessários, e set / a tem um operador que economiza digitação e organiza expressões como esta:
set /a hp -= atk*arandom*edefbonus/(edef*6)
Como você mencionou o arredondamento, adicionarei isso:
Contanto que o valor à direita do operador -=
acima seja sempre positivo, a maneira mais simples de fazer o arredondamento é:
set /a hp -= (10*atk*arandom*edefbonus/(edef*6)+5)/10
Observe que multiplicamos por 10 antes da divisão, não depois dela, então o cálculo é:
10*2*2*8 =320
1*6 =6
320/6 =53
53+5 =58
58/10 =5
Se multiplicarmos por 10 após a divisão, como em
set /a hp -= (atk*arandom*edefbonus/(edef*6)*10+5)/10
,
o cálculo seria:
2*2*8 =32
1*6 =6
32/6 =5 (we just lost the fraction digit, so rounding won't work)
5*10 =50
50+5 =55
55/10 =5
O mesmo resultado, mas apenas porque o arredondamento seria arredondado para baixo de qualquer maneira.