Private Sub Command1_Click()
Select Case 0
Case Is = InStr(1, Text1.Text, ".")
Text1.Text = Val(Replace(Text1.Text, ".", ","))
Case Is = InStr(1, Text2.Text, ".")
Text1.Text = Val(Replace(Text2.Text, ".", ","))
Case Is = InStr(1, Text3.Text, ".")
Text1.Text = Val(Replace(Text3.Text, ".", ","))
End Select
D = Text1.Text
SH = Text2.Text
H = Text3.Text
S = D * SH
V = S * H
P = (D + SH) * 2
PS = P / S
Text4.Text = S
Text5.Text = V
Text6.Text = P
Text7.Text = PS
End Sub
это должно зависеть и зависит от национальных настроек и смивола, указанного там (в национальных настройках) в качестве разделителя.это не должно зависеть от операционной системы!
Dim sInput As String
sInput = ...
sInput = Replace (sInput, ",", ".")
Насколько я понимаю, точка действует всегда как разделитель, но могу и ошибаться. В любом случае перед использованием cint, clng, ..., val, лучше убедиться в корректности вводимых данных.
Select Case 0
Case Is = InStr(1, Text1.Text, ".")
Text1.Text = Val(Replace(Text1.Text, ".", ","))
Case Is = InStr(1, Text2.Text, ".")
Text1.Text = Val(Replace(Text2.Text, ".", ","))
Case Is = InStr(1, Text3.Text, ".")
Text1.Text = Val(Replace(Text3.Text, ".", ","))
End Select
D = Text1.Text
SH = Text2.Text
H = Text3.Text
S = D * SH
V = S * H
P = (D + SH) * 2
PS = P / S
Text4.Text = S
Text5.Text = V
Text6.Text = P
Text7.Text = PS
End Sub
Мне нужно что-бы разделителем была запятая ","(ПРИМЕР " 123,22")При запятой Функция Val в значении переменной отбрасывает дробную часть числа (ПРИМЕР " 123") Возможно-ли это?
- Код: Выделить всё
Select Case 0
Case Is = InStr(1, Text1.Text, ".")
Text1.Text = Val(Replace(Text1.Text, ".", ","))
Case Is = InStr(1, Text2.Text, ".")
Text1.Text = Val(Replace(Text2.Text, ".", ","))
Case Is = InStr(1, Text3.Text, ".")
Text1.Text = Val(Replace(Text3.Text, ".", ","))
End Select
Тоже почитай.Что непонятно что тебе конкретн нужно. Я ведь говорю, точности ты все равно не получшь, округление+отнимание дробной части = никакой точности...
If InStr(1, Text1.Text, ".") > 0 Then
Text1.Text = Replace(Text1.Text, ".", ",")
End If
If InStr(1, Text2.Text, ".") > 0 Then
Text2.Text = Replace(Text2.Text, ".", ",")
End If
If InStr(1, Text3.Text, ".") > 0 Then
Text3.Text = Replace(Text3.Text, ".", ",")
End If
D = Text1.Text
SH = Text2.Text
H = Text3.Text
S = D * SH
V = S * H
P = (D + SH) * 2
PS = P / S
Text4.Text = S
Text5.Text = V
Text6.Text = P
Text7.Text = PS
kuybyshev писал(а):Вроде-бы для меня и хорошее решение
Select Case 0
Case Is = InStr(1, Text1.Text, ".")
Text1.Text = Val(Replace(Text1.Text, ".", ","))
Case Is = InStr(1, Text2.Text, ".")
Text1.Text = Val(Replace(Text2.Text, ".", ","))
Case Is = InStr(1, Text3.Text, ".")
Text1.Text = Val(Replace(Text3.Text, ".", ","))
End Select
но вот говорю что почемуто именно в текстбоксе1 ввожу 10,7 а при нажатии команд1 получаю 10
А в статье то опечатки оказывается есть... Эххх... каюсь.
Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 54