Тема: Разделитель целой и дробной частей числа

Подскажите пожалуйста, как определить(программно)разделитель целой и дробной частей числа. Заранее благодарен.

Re: Разделитель целой и дробной частей числа

Простейший срособ
if isnumeric("1.2") then
' . разделитель
else
' ,  разделитель
endif
(просто проверить число в одной из 2 записей)

Re: Разделитель целой и дробной частей числа

Уважаемый dvim, спасибо за помощь.

Re: Разделитель целой и дробной частей числа

Способ предложенный dvim (2004-08-10 14:17:40) сработает далеко-о-о не всегда. Все зависит от конкретных настроек Windows. Isnumeric может возвращать True как для "1.2", так и для "1,2". Корректно определять, какой используется разделитель целой и дробной части числа, надо через WinAPI.

Private Const LOCALE_SDECIMAL = &HE
Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Function GetDecimalSep() As Boolean
Dim strVal As String
strVal = String(16, Chr(0))
GetLocaleInfo GetUserDefaultLCID(), LOCALE_SDECIMAL, strVal, 16
If Left(strVal, InStr(1, strVal, Chr(0)) - 1) = "." Then
    GetDecimalSep = True
Else
    GetDecimalSep = False
End If
End Function

Re: Разделитель целой и дробной частей числа

Уважаемый bender, спасибо за помощь. Это именно то, что нужно

Re: Разделитель целой и дробной частей числа

seprator=mid(format (1.1,"General Number"),2,1))
Это проще и  должно всегда работать.
Пользуюсь случаем - Bender'у спасибо за участие в этом форуме. Получила несколько раз неоценимую помощь!

Re: Разделитель целой и дробной частей числа

Sub sep()
Dim a As Double
Dim b As Long
Dim c As Double
Dim seprator As String
    a = 12349.4321
    seprator = Mid(Format(1.1, "General Number"), 2, 1)
    b = CLng(Format(Format(a, seprator)))
    c = a - b
End Sub

А теперь с трех раз угадайте что будет в "с"
ТА-ДААА
c=0.432099999999991
:))

Re: Разделитель целой и дробной частей числа

sorry
b = CLng(Format(a, seprator))