Ir para conteúdo
Fórum Script Brasil
  • 0

Numeros após a virgula!


JohnRees

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0

Opa, é o seguinte... o professor de mátematica, pediu pra nós fazermos 1 programa que de acordo com o horário que digitarmos nos textbox, ele mostre os angulos dos ponteiros, então , gostaria de saber como posso pegar o número após a virgula do número quebrado, pois preciso achar os ''minutos'' dentro dos graus, por exemplo 2h30min = 22º30' , e no textbox ''destino'' aparece apenas 22,5º ( o que não deixa de estar correto creio eu )

A minha codificação foi bem simples...

A = H * 30

A2 = 0

While Not A1 = M

A1 = A1 + 1

A2 = A2 + 6

Wend

A3 = (30 * M) / 60 + (A - A2)

If A3 < 0 Then

A3 = A3 * (-1)

End If

TXTANGULO.Text = A3

Obrigado Desde já!

Link para o comentário
Compartilhar em outros sites

  • 0

correto até esta, pois na verdade 22,5º = 22º30' já que um grau tem 60 minutos.

só q ele não esta mostrando no formato desejado.

pra isso, você vai ter fazer a conversao. tipo, você tem pegar o numero depois da virgula e, considerando duas casas decimais (no exemplo, a cima o 5 ficaria 50, pois 22,5 = 22,50), dividir por 100 e multiplicar por 60. e ai você vai obter o valor em minutos.

nesse tópico aqui http://scriptbrasil.com.br/forum/index.php?showtopic=108910 tb tem uma funcao q converte segundos para hora. se você passar o valor todo em segundos. ai você poderia adaptar, passando o valor em minutos.

veja ai se você entendeu, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0
correto até esta, pois na verdade 22,5º = 22º30' já que um grau tem 60 minutos.

só q ele não esta mostrando no formato desejado.

pra isso, você vai ter fazer a conversao. tipo, você tem pegar o numero depois da virgula e, considerando duas casas decimais (no exemplo, a cima o 5 ficaria 50, pois 22,5 = 22,50), dividir por 100 e multiplicar por 60. e ai você vai obter o valor em minutos.

nesse tópico aqui http://scriptbrasil.com.br/forum/index.php?showtopic=108910 tb tem uma funcao q converte segundos para hora. se você passar o valor todo em segundos. ai você poderia adaptar, passando o valor em minutos.

veja ai se você entendeu, qualquer coisa poste.

Aí está minha duvida... eu até entendi o que tenho de fazer, mas eu faço a conversão no número inteiro, ou só nos números após as virgulas, se for nos números após, como fazer para selecionar apenas os números?

Grato!

Link para o comentário
Compartilhar em outros sites

  • 0

opa, se o numero q você quiser pegar a parte decimal esta na variavel A3, é só fazer tipo assim:

parte_decimal = (A3 - Int(A3)) * 100

ai, no exemplo, pro numero 22,5, você vai ter o valor 50 retornado pra varavel parte_decimal. ai você fazendo o calculo q eu indiquei no outro post (/ 100 * 60) você vai obter o valor em minutos (30).

ai depois pra mostrar o resultado, se você pegar Int(A3) você retorna a parte inteira. ai é só concatenar com a parte quebrada q foi calculada.

Link para o comentário
Compartilhar em outros sites

  • 0
opa, se o numero q você quiser pegar a parte decimal esta na variavel A3, é só fazer tipo assim:

CODE

parte_decimal = (A3 - Int(A3)) * 100

ai, no exemplo, pro numero 22,5, você vai ter o valor 50 retornado pra varavel parte_decimal. ai você fazendo o calculo q eu indiquei no outro post (/ 100 * 60) você vai obter o valor em minutos (30).

ai depois pra mostrar o resultado, se você pegar Int(A3) você retorna a parte inteira. ai é só concatenar com a parte quebrada q foi calculada.

Muito Obrigado, agora só me falta lembrar como concatena!!!

Só 1 comentário, eu acho que você trocou as bolas ali em cima, pois só funcionou do jeito correto se for (/60 *100)

Mas enfim, MUITO OBRIGADO pela sua ajuda!!!

Link para o comentário
Compartilhar em outros sites

  • 0

pra concatenar, use o operador &.

tipo assim:

Text1.Text = var1 & "º" & var2 & "'"

Só 1 comentário, eu acho que você trocou as bolas ali em cima, pois só funcionou do jeito correto se for (/60 *100)

ue, tem certeza?? ainda acho q é / 100 * 60. faca por regra de tres, ó:

v -- x

100 -- 60

onde v é o valor quebrado q você pegou do resultado e x o resultado (o numero convertido)

vai dar q 100x = 60v, ou seja x = v * 60 / 100

alem do mais 50 * 60 / 100 = 30, ou seja, o calculo do nosso exemplo vai bater, pode fazer na calculadora.

pra fazer / 60 * 100, seria pra fazer o calculo inverso.

Link para o comentário
Compartilhar em outros sites

  • 0
pra concatenar, use o operador &.

tipo assim:

Text1.Text = var1 & "º" & var2 & "'"
Só 1 comentário, eu acho que você trocou as bolas ali em cima, pois só funcionou do jeito correto se for (/60 *100)
ue, tem certeza?? ainda acho q é / 100 * 60. faca por regra de tres, ó: v -- x 100 -- 60 onde v é o valor quebrado q você pegou do resultado e x o resultado (o numero convertido) vai dar q 100x = 60v, ou seja x = v * 60 / 100 alem do mais 50 * 60 / 100 = 30, ou seja, o calculo do nosso exemplo vai bater, pode fazer na calculadora. pra fazer / 60 * 100, seria pra fazer o calculo inverso.
Então, eu estava tentando fazer como você disse ( /100 e *60 ) e estava dando 8,66666... uma dizima, ou algum numero assim, ai troquei as operações e agora esta funcionando perfeitamente!! MUITO OBRIGADO! xD
Private Sub CMDCALCULAR_Click()
Dim H As Double
Dim M As Double
Dim A As Double
Dim A1 As Double
Dim A2 As Double
Dim A3 As Double
    
    If TXTHORA.Text = Empty Then
            MsgBox "Digite algum minuto"
        Exit Sub
    Else
            H = TXTHORA.Text
    End If
        
    If TXTMINUTO.Text = Empty Then
            MsgBox "Digite algum minuto"
        Exit Sub
    Else
            M = TXTMINUTO.Text
    End If
   

A = H * 30
A2 = 0
    
    While Not A1 = M
        A1 = A1 + 1
        A2 = A2 + 6
    Wend
A3 = (30 * M) / 60 + (A - A2)
parte_decimal = (A3 - Int(A3)) * 100
    If A3 < 0 Then
        A3 = A3 * (-1)
    End If
TXTANGULO.Text = Int(A3) & "º" & (parte_decimal * 60) / 100 & "'"

TXTHORA.Text = Empty
TXTMINUTO.Text = Empty

Não sei se é de alguma utilidade, mas o código final ficou assim...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...