


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")
Сейчас этот форум просматривают: AhrefsBot и гости: 7