Val(строка)
Snussi писал(а):А вот и не факт!
Val воспримет только точку как дес. разделитель.
Имхо, лучше CDbl, CINT,Clng и тд. Правда, они воспринимают как дес. разделитель символ, установленный в региональных настройками.
Так что, смотря что нужно делать
CDbl(Replace(MyString,".",Format(0,".")))
Val(Replace(MyString,",",".")
!Viper! писал(а):а с еще большей гарантией сработает
- Код: Выделить всё
Val(Replace(MyString,",",".")
GSerg писал(а):Так вот как раз format$(0, ".") и получит этот разделитель.
GSerg писал(а):Выполни: msgbox format$(0, ".")
!Viper! писал(а):в реестре это лежит здесь :
HKEY_CURRENT_USER\Control Panel\International
строковый параметр sDecimal
uhm писал(а):Hint: поменяй ручками десятичный разделитель на что-нибудь непотребное, а потом еще раз выполни msgbox format$(0, ".")
Format(0,".0")
Dim dbl As Double
Dim str As String
str = "123,45"
dbl = CDbl(str) 'здесь произойдет ошибка
dbl = Val(str) 'ошибки не будет, но dbl будет равна нулю
alibek писал(а):Ерунда, dbl будет равен 123
dbl = CDbl("123,45")
dbl = Val("123,45")
Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 134