COMO TRABALHAR NUMEROS/CASAS DECIMAIS NO TEXTBOX?

NATODS 08/11/2012 16:07:02
#413826
OLÁ COLEGAS! SOU NOVO NESSA ÁREA DE PROGRAMAÇÃO E ESTOU TENDO PROBLEMAS PARA INCLUIR VALORES DECIMAIS EM UM TEXTBOX. O VALOR ATé ENTRA, SÓ QUE NÃO SALVA NO BD E TRAVA O TEXTBOX. O QUE PODE ESTAR ACONTECENDO? VOU COLOCAR O CÓDIGO PARA VCS AVALIAREM O QUE EU POSSO ESTAR FAZENDO DE ERRADO.
Private Sub TOTAL_HORAS_EXTRASTextBox_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TOTAL_HORAS_EXTRASTextBox.GotFocus

Dim DataHoraFim As DateTime
Dim DataHoraInicio As DateTime
Dim DataHorasTrabalhadas As TimeSpan
Dim HorasTrabalhadas As Decimal
Dim HorasExtras As Decimal
Dim I As Integer
Dim V_PLACA As Object
Dim V_LOCAL As Object
Dim v_decimal As Decimal


[ô]obtem o valor da data/hora fim do condutor no controle DATA_HORA_FIMDateTimePicker
DataHoraFim = Me.DATA_HORA_FIMDateTimePicker.Value

[ô]obtem o valor da data/hora fim do condutor no controle DATA_HORA_INÍCIODateTimePicker
DataHoraInicio = Me.DATA_HORA_INÍCIODateTimePicker.Value

[ô]subtrai a data/hora de inicio do trabalho do condutor da data/hora fim.
DataHorasTrabalhadas = DataHoraFim.Subtract(DataHoraInicio)

[ô]Calcula o número de horas entre as datas
HorasTrabalhadas = DataHorasTrabalhadas.TotalHours

[ô]Calcula o número de horas extras
HorasExtras = HorasTrabalhadas - 9

[ô]Atrabui o valor das horas extras ao textbox
Me.TOTAL_HORAS_EXTRASTextBox.Text = HorasExtras

If Me.PLACATextBox.Text Is DBNull.Value.ToString Then

MessageBox.Show([Ô]O campo PLACA não pode ser nulo. Por favor, digite o nº da placa.[Ô], [Ô]ATENÇÂO!![Ô])
Me.PLACATextBox.Focus()

Else

I = 0

Do

V_PLACA = Me.VEÍCULOSDataGridView.Rows(I).Cells(0).Value

If Me.PLACATextBox.Text = V_PLACA Then
V_LOCAL = Me.VEÍCULOSDataGridView.Rows(I).Cells(4).Value
If V_LOCAL Is [Ô]BRASÍLIA[Ô] Then

Me.TOTAL_HORAS_EXTRASTextBox.Text = (HorasExtras * (22.2))

ElseIf V_LOCAL Is [Ô]RIO COMPRIDO[Ô] Then

Me.TOTAL_HORAS_EXTRASTextBox.Text = (HorasExtras * (16.65))

ElseIf V_LOCAL = [Ô]XERéM[Ô] Then

v_decimal = (HorasExtras * (16.65))
Me.TOTAL_HORAS_EXTRASTextBox.Text = v_decimal.ToString([Ô]0.00[Ô])
Exit Sub

End If


Else

I = I + 1

End If

Loop While (V_PLACA IsNot DBNull.Value Or Nothing)

End If
End Sub
AH! EU ESQUECI DE DIZER QUE ESTOU USANDO O VB 2005 EXPRESS EDITION. MAIS UMA VEZ OBRIGADO!
VELDRAME 08/11/2012 17:15:27
#413842
Geralmente é formato no Banco.
Coloque o campo como Double ou Float
AJSO 08/11/2012 17:39:49
#413847
Resposta escolhida
CARO NATODS

Seu código talves possa ter outros erros quer não foi tratado pois nessa sua TEXTBOX não esta tratando informações para o SALVAR em seu banco

Utilize o [ô]DEBUGADOR[ô] do Visual Studio para saber o erro onde acontece............

Iserir um BreakPoint (F9) no seu código ou evento que gostaria de acompanha até onde ocorre o erro e passe a MENSSAGEM DE ERRO para podermos analizar

com o local correto do ERRO podemos sugerir instruções de tratamento e mudança no código...........

O TRATAMENTO BÁSICO PARA ESSE TIPO DE VARIÁVEL

Dim Valor As Double = 20.5
TextBox1.Text = String.Format([Ô]{0:N2}[Ô], Valor)
[ô]resultado 20,50

No caso trata de valores, ele tem que retornar em forma decimal, igual dinheiro, não podendo arredondar o valor;

Dim valor as Decimal
valor = Math.Round((Textbox1.Text) - 0.005, 2)
Textbox2.Text = Format(valor, [Ô]N2[Ô])

==========================================================================================
textBox.Text = string.Format([Ô]{0:N2}[Ô], variavel)
No caso apresentado Onde o numero dois (2) representa a quantidade de casas decimais.
==========================================================================================



Boa Sorte
Tópico encerrado , respostas não são mais permitidas