Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webdesign

calculo errado

Recommended Posts

tenho este código

Public Class solidas_1730
Dim você As Integer = 90000
Const Pi As Double = 3.14159265358979
Dim Dc As Decimal
Dim rotaMaxima As Decimal
Dim Rot As Decimal
Dim avanco As Decimal
Dim texts As Decimal

Private Sub Btn_calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_calcular.Click
   	'verifica se o campo diametro está vazio
   	If txt_diametro.Text = "" Then
       	MessageBox.Show("Prencha o campo Diâmetro")

       	Exit Sub
   	End If

   	'verifica se o campo rotação está vazio
   	If txt_Rotacao.Text = "" Then
       	MessageBox.Show("Prencha o campo Rotação")
       	Exit Sub
   	End If


   	texts = txt_Rotacao.Text
   	Dc = txt_diametro.Text
   	rotaMaxima = txt_Rotacao.Text
   	Rot = você / Pi / Dc

   	If Dc >= 4 And Dc < 6 Then
       	avanco = Rot * 0.12
   	ElseIf Dc >= 6 And Dc < 8 Then
       	avanco = Rot * 0.15
   	ElseIf Dc >= 8 And Dc < 10 Then
       	avanco = Rot * 0.17
   	ElseIf Dc >= 10 And Dc < 12 Then
       	avanco = Rot * 0.2
   	ElseIf Dc >= 12 And Dc < 14 Then
       	avanco = Rot * 0.22
   	ElseIf Dc >= 14 And Dc < 16 Then
       	avanco = Rot * 0.23
   	ElseIf Dc >= 16 And Dc < 100 Then
       	avanco = Rot * 0.25
   	Else

       	MsgBox("Parâmetros indisponíveis", 64, "Parâmetros indisponíveis")
       	Exit Sub

   	End If

   	rotaMaxima = rotaMaxima * avanco / Rot

   	If texts < Rot Then
       	MessageBox.Show("Atenção rotação Superior ao limite,os valores vao ser ajustados" & vbCrLf & "A rotação é: " & texts.ToString("F0") & vbCrLf & "O avanço é: " & rotaMaxima.ToString("F0"), "Parâmetros de corte")
   	ElseIf texts > Rot Then
       	MessageBox.Show("Parametros Originais" & vbCrLf & "A rotação é: " & Rot.ToString("F0") & vbCrLf & "O avanço é: " & avanco.ToString("F0"), "Parâmetros de corte")
   	End If
End Sub

 

 

 

quando na caixa diametro coloco o ponto em vez de virgula ele executa o código mal...

Exempl:quando coloco 6,8 ele executa bem mas quando coloco 6.8 já da outros cáclulos alguem me ajuda!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Converta os campos para decimal:

 

 

       texts = Convert.ToDecimal(txt_Rotacao.Text)
       Dc = Convert.ToDecimal(txt_diametro.Text)
       rotaMaxima = Convert.ToDecimal(txt_Rotacao.Text)

 

 

Dá para tentar usar o Double ao invés do Decimal também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Converta os campos para decimal:

 

 

       texts = Convert.ToDecimal(txt_Rotacao.Text)
       Dc = Convert.ToDecimal(txt_diametro.Text)
       rotaMaxima = Convert.ToDecimal(txt_Rotacao.Text)

 

 

Dá para tentar usar o Double ao invés do Decimal também.

 

cara eu fiz assim como disse mas mesmo assim nao funcionou o que estou a fazer errado, com a virgula os valores funcionam bem com o ponto diz parametros insiponivei.

 

 

Public Class canhao_12344
Dim você As Integer = 30000
Const Pi As Double = 3.14159265358979
Dim Dc As Decimal
Dim rotaMaxima As Decimal
Dim Rot As Decimal
Dim avanco As Decimal
Dim texts As Decimal

Private Sub Btn_calcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_calcular.Click
   	'verifica se o campo diametro está vazio
   	If txt_diametro.Text = "" Then
       	MessageBox.Show("Prencha o campo Diâmetro")

       	Exit Sub
   	End If

   	'verifica se o campo rotação está vazio
   	If txt_Rotacao.Text = "" Then
       	MessageBox.Show("Prencha o campo Rotação")
       	Exit Sub
   	End If

   	texts = Convert.ToDecimal(txt_Rotacao.Text)
   	Dc = Convert.ToDecimal(txt_diametro.Text)
   	rotaMaxima = Convert.ToDecimal(txt_Rotacao.Text)
   	Rot = você / Pi / Dc

   	If Dc >= 8 And Dc < 12 Then
       	avanco = Rot * 0.018
   	ElseIf Dc >= 12 And Dc < 15 Then
       	avanco = Rot * 0.019
   	ElseIf Dc >= 15 And Dc < 19 Then
       	avanco = Rot * 0.02
   	ElseIf Dc >= 19 And Dc < 24 Then
       	avanco = Rot * 0.024
   	ElseIf Dc >= 24 And Dc < 30 Then
       	avanco = Rot * 0.028
   	ElseIf Dc >= 30 And Dc < 100 Then
       	avanco = Rot * 0.03

   	Else

       	MsgBox("Parâmetros indisponíveis", 64, "Parâmetros indisponíveis")
       	Exit Sub

   	End If

   	rotaMaxima = rotaMaxima * avanco / Rot

   	If texts < Rot Then
       	MessageBox.Show("Atenção rotação Superior ao limite,os valores vao ser ajustados" & vbCrLf & "A rotação é: " & texts.ToString("F0") & vbCrLf & "O avanço é: " & rotaMaxima.ToString("F0"), "Parâmetros de corte")
   	ElseIf texts > Rot Then
       	MessageBox.Show("Parametros Originais" & vbCrLf & "A rotação é: " & Rot.ToString("F0") & vbCrLf & "O avanço é: " & avanco.ToString("F0"), "Parâmetros de corte")
   	End If
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só dá erro quando você digita?

 

Não!Só da erro quando clico no botão de calcular diz parametros indisponiveis, se colocar a virgula quando clico no botão já funciona!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.