Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Ajuda com soma no cmd

3 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1Ajuda com soma no cmd Empty Ajuda com soma no cmd Sex Ago 26, 2022 12:12 am

Thomas A. Anderson

Thomas A. Anderson

Boa noite pessoal, alguém já precisou somar dois ou mais números que não fossem do tipo inteiros pelo cmd? Tipo números com 2 ou mais casas decimais após a vírgula, porque pelo cmd dá pra somar usando inteiros pelo comando set. E estes números estão presentes em um arquivo txt. Parece que deve ter algo que funcione no powershell, mas preciso verificar. Mas qualquer ajuda é bem vinda. Obrigado.

2Ajuda com soma no cmd Empty Re: Ajuda com soma no cmd Seg Ago 29, 2022 12:08 am

BossRpg



Olá, faz anos que não acesso esse fórum e fiquei curioso, eu fiz um teste de maneira que obrigue um número inteiro ficar fracionado:
Código:
@echo off
set x=3
set y=2
set /a z=x/y
echo %z%
pause >nul

Ao invés de voltar 1,5 ele retorna apenas 1 e mesmo que a parte fracionada seja 9 retornará o que vem antes da vírgula sempre:
Código:
@echo off
set x=81
set y=90
set /a z=x/y
echo %z%
pause >nul

Calculadora retorna 0,9, Batchscript retorna 0.

Mesmo que você grave o número em uma variável como um texto no momento da operação vai acontecer o mesmo. A solução é fazer tudo por um VBS, se você não tiver prática não é algo tão difícil.

Boss-Head, Nosomy e Thomas A. Anderson gostam desta mensagem

3Ajuda com soma no cmd Empty Re: Ajuda com soma no cmd Sex Set 16, 2022 9:19 am

Boss-Head

Boss-Head

Thomas A. Anderson escreveu:Boa noite pessoal, alguém já precisou somar dois ou mais números que não fossem do tipo inteiros pelo cmd? Tipo números com 2 ou mais casas decimais após a vírgula, porque pelo cmd dá pra somar usando inteiros pelo comando set. E estes números estão presentes em um arquivo txt. Parece que deve ter algo que funcione no powershell, mas preciso verificar. Mas qualquer ajuda é bem vinda. Obrigado.
Código:
@echo Off 
@color 17 
title Visite nosso site Batch-satti 
:: Este arquivo foi gerado pelo contexto Boss-Hed 
:: Visite nosso site Batch-satti 

:: porcentagem
CALL:Calcular "50,36+((50,36/100)*25)" VENDA
echo %VENDA%
:: subtração
CALL:Calcular "50,36-((50,36/100)*25)" VENDA
echo %VENDA%
CALL:Calcular "50,36-25,36" VENDA
echo %VENDA%
pause

:Calcular
set "Calcular="
Set "_Conta=%~1"
set "_Conta=%_Conta:^=^^%"
set "_Conta=%_Conta:,=.%"
set "_Conta=%_Conta:"=%"
Set _TmpCalc="%temp%\tmpcalc.txt"
echo dim C>%temp%\calcular.vbs
echo C=%_Conta%>>%temp%\calcular.vbs
echo wsh.echo C>>%temp%\calcular.vbs
cscript //nologo %temp%\calcular.vbs>%_TmpCalc%
set/p Calcular=<%_TmpCalc%
set "rt=%Calcular:,=.%"
for /F "TOKENS=1,2 DELIMS=." %%i in ('echo %rt:~0,18%') do (
set "val=%%i"
set "dec=%%j                "
)
IF "%dec:~0,2%"=="  " set "dec=00"
IF "%dec:~-1%"==" " set "dec=%dec:~0,1%0"
set "rt=%val%,%dec:~0,2%"
set "%~21=%rt:.=,%                                  "
set "%~2=%rt:.=,%"
:: arruma preço custo para 00
for /F "TOKENS=1,2 DELIMS=." %%i in ('echo %PREC:~0,18%') do (
set "val1=%%i"
set "dec1=%%j                "
)
IF "%dec1:~0,2%"=="  " set "dec1=00"
IF "%dec1:~-1%"==" " set "dec=%dec1:~0,1%0"
REM IF "%dec1:~1,1%"==" " set "dec1=%dec1:~0,1%0"
set "rt1=%val1%,%dec1:~0,2%"
set "PREC1=%rt1:.=,%                                "
set "PREC=%rt1:.=,%"
del /q /s %_TmpCalc% >nul
del /q /s %temp%\calcular.vbs >nul
Exit/b 0

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos