galera, minha dúvida é gigante. preciso fazer a seguinte conta: tenho uma qtde X e tenho que saber quantas unidades de saco de 25 kg eu terei que formular. teoricamente parece fácil mais na prática para mim está sendo difícil, pois quando tenho valor quebrado tenho que informar separadamente a qtde. no excel criei a lógica assim: quant-sacogeral = qtdex / 25 = 1.6 quant-sacoint = int(qtdex / 25) = 1 dif = quant-sacogeral - quant-sacoint = 0.6 total sc = quant-sacoint + se(dif <>0) então 1 senao 0. total de sacos é: 2 1 saco com 25 kg + 1 saco com 15. como faço este procedimento no progress?
o Problema é o seguinte: quando calculo numeros onde o resto é maior que cinco ele arredonda para mais e ai a conta dá errado. abaixo está o exemplo do código com o erro. Código: def var qtdex as DEC INIT 40. def var quant-sacogeral as DEC. def var quant-sacoint as int. def var dif as DEC. def var totalsc as int. quant-sacogeral = qtdex / 25. quant-sacoint = int(qtdex / 25). dif = quant-sacogeral - quant-sacoint. totalsc = quant-sacoint + IF(dif <> 0) THEN 1 ELSE 0. DISP qtdex /*40*/ quant-sacogeral /*1,6*/ quant-sacoint /*2 */ dif /*-0,40 errado*/ totalsc /*3 o correto seria : 1 saco com 25 kg e outro com 15 kg*/ . se puderem me ajudar a solucionar o problema eu agradeço.
depois de aliviar o stress achei o problema. eu estava fazendo errado a condição correta é: Código: totalsc = quant-sacoint + IF dif <= 0 THEN 0 ELSE 1. vlw a todos novamente.
Boa Tarde! Seus problemas acabaram.... rs rs rs Teste assim: Comandos MOD e TRUNC(parametros 0 é truncar para nenhuma casa decimal... se quiser truncar para uma.. duas,.. é só alterar o valor), tb existe o Comando ROUND que Arredonda.. tb usando a após a vírgula o parâmetro de qtd de casas que quer arredondar.. Você iria usar estes dois comandos? ASSIGN dif = qtdex MOD 25. INT(TRUNC((qtdex / 25),0)). Vou fazer o programinha... jajá posto aqui!
Que bom então que funcionou! Mas como tinha prometido, olha ai usando os comandos que eu falei anteriormente. Código: def var qtdex as DEC INIT 40. def var totalsc as int. totalsc = TRUNC((qtdex / 25),0) + ( IF qtdex MOD 25 > 0 THEN 1 ELSE 0). MESSAGE totalsc VIEW-AS ALERT-BOX. Abraços , Eriuton Charles