1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[VB6] Problemas de cálculo

Discussão em 'Programação' iniciada por wizard964, 11 de Novembro de 2007. (Respostas: 10; Visualizações: 1072)

  1. wizard964

    wizard964 Power Member

    Tenho um formulário q é suposto pegar nos valores TOTAIS de formulários ja criados A,V e U

    Como consequencia o prog deve efectuar o seguinte calculo : (A+V+U)/3 = G onde G deve apresentar o resultado em número inteiro absoluto.

    Nas caixas A V e U tem q aparecer o resultado total dos formularios anteriores.

    Eu nao consigo programar esta parte tentei + sempre dava erro :

    Código:
    Private Sub Form_Load()
    Dim s As Integer
    total.Text = Str((Val(FRMU.txtvtotal) + Val(FRMA.txtAtotal) + Val(frmp15.txtUtotal))) / 3
    's = (Val(FRMU.txtvtotal) + Val(FRMA.txtAtotal) + Val(frmp15.txtUtotal)) / 3
    
    'total.Text = Str(s)
    txta.Text = Str(Val(FRMA.txtAtotal))
    txtu.Text = Str(Val(FRMU.txtvtotal))
    txtv.Text = Str(Val(frmp15.txtUtotal))
    txtg.Text = Str(total.Text)
    [​IMG]
     
  2. PJTuga

    PJTuga Power Member

    Para escreveres numeros numa textbox nao precisas de converter para string..

    podias era dizer qual é o erro
     
  3. wizard964

    wizard964 Power Member

    PJTUGA> O prog nao dá erro + não realiza o cálculo da maneria correcta
    ex: (11+ 12+11)/3=11.333333... mas o programa diz que o resultado é 13
     
  4. PJTuga

    PJTuga Power Member

    em vez de Dim s As Integer
    experimenta Dim s As Real
     
  5. wizard964

    wizard964 Power Member

    Ok..PJTUGA..d facto o resultado estava certo.Pore nas caixas d texto eq já nao esta a mostrar o resultado actualizado dos formularios anteriores.
    Enfim o maior não é esse + sim como colocar o valor decimal por inteiro ! é suposto o prog apresentar um valor por inteiro
    Ex: 13,5 = 13 | 13.6 = 14 | 13,4 = 13
     
  6. Pss

    Pss Power Member

    O "Dim s As Real" tem de estar em "General Declarations" penso eu...

    Não sei nenhum que faça os arredondamentos :(

    FIX: Retorna a parte inteira de um número. Não faz arredondamento
    Fix([expressãoNumérica])
    Por exemplo 10.7 passa para 10
    10.2 passa para 10
     
  7. wizard964

    wizard964 Power Member

    Sim + como eq eu faco ixo !!!
     
  8. PJTuga

    PJTuga Power Member

    Para arredondar acho que é Int(valor)
     
  9. Pss

    Pss Power Member

    Fazes um command e metes o código

    Código:
     
    total.Text = fix(total)
    
     
    Última edição: 11 de Novembro de 2007
  10. kzip

    kzip Power Member

    O "Int" faz a mesma coisa do que o "Fix" acho eu.

    tens a certeza que 13,5 é para arredondar para 13? é que o arredondamento por aproximação faz com que arredonde para 14.

    Se for mesmo assim, então:

    resultado = INT( valor + .49)
     
    Última edição pelo moderador: 13 de Novembro de 2007
  11. Armadillo

    Armadillo Folding Member

    Ta no MSDN

    Round Function


    Description
    Returns a number rounded to a specified number of decimal places.
    Syntax
    Round(expression [,numdecimalplaces])
    The Round function syntax has these parts:
    Part Description expression Required. Numeric expression being rounded. numdecimalplaces Optional. Number indicating how many places to the right of the decimal are included in the rounding. If omitted, integers are returned by the Round function.
     

Partilhar esta Página