Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / frac... как отбросить целую часть от числа в VB? / 13 сообщений из 13, страница 1 из 1
23.11.2006, 09:24
    #34148864
ILIUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Функции такой я так понимаю в VB нет... Как попроще это сделать? Или точнее просто вернуть дробную часть как целое число.
...
Рейтинг: 0 / 0
23.11.2006, 09:49
    #34148937
Neva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Mid(Text1.Text, InStr(1, Text1.Text, ".") + 1, Len(Text1.Text))
где text1.text - ваше число
...
Рейтинг: 0 / 0
23.11.2006, 10:04
    #34148989
ILIUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Я вобщем-то тоже такое решение и предполагал, просто сомневался, неужели в VB совсем об этом не подумали и чтобы получить дробную часть числа нужно работать с числом как со строкой.
Но все равно спасибо!
...
Рейтинг: 0 / 0
23.11.2006, 11:10
    #34149264
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Код: plaintext
X - Int(X)
I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
23.11.2006, 11:48
    #34149510
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Я например использую собственную функцию в Модуле

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Function Piece(chars As String, delimiter As String, position As Long)
     If position <  1  Then
        Piece = ""
        Exit Function
    End If
    ReDim Where( 0  To position +  1 ) As Long
    Where( 0 ) =  1 
    current =  1 
    Length = Len(delimiter)
    For Count =  1  To position
        Where(Count) = InStr(current, chars, delimiter)
        If Where(Count) =  0  Then Where(Count) = Len(chars) +  1 
        current = Where(Count) + Len(delimiter)
    Next Count
    If position =  1  Then
        Length =  0 
    End If
    If (Where(position) = Where(position -  1 )) Then
        back = ""
    Else
        back = Mid(chars, (Where(position -  1 ) + Length), (Where(position) - Where(position -  1 ) - Length))
    End If
    Piece = back
End Function

И потом с любого места (до) после "делиметера" извлекаю часть строки...
Код: plaintext
1.
Num="321.12"
  MsgBox Piece(Num,".", 2 )
.....
...
Рейтинг: 0 / 0
23.11.2006, 12:17
    #34149691
Neva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
HandKot
Код: plaintext
X - Int(X)
I Have Nine Lives You Have One Only
THINK!
Да уж. Действительно.
...
Рейтинг: 0 / 0
23.11.2006, 17:18
    #34151120
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
NevaMid(Text1.Text, InStr(1, Text1.Text, ".") + 1, Len(Text1.Text))
где text1.text - ваше число
вторую запятую ставить не обязательно. Т.е.
Mid(Text1.Text, InStr(1, Text1.Text, ".") + 1)
этого достаточно
...
Рейтинг: 0 / 0
26.11.2006, 03:29
    #34155741
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Private Function GetDecimalPart(ByVal pdblNumber As Double, pstrDecimalSeparator As String) As String
On Error Resume Next
GetDecimalPart = Split(CStr(pdblNumber), pstrDecimalSeparator, , vbBinaryCompare)(1)
End Function

MsgBox GetDecimalPart(123.9, ".")
...
Рейтинг: 0 / 0
26.11.2006, 13:20
    #34155883
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
VladConnPrivate Function GetDecimalPart(ByVal pdblNumber As Double, pstrDecimalSeparator As String) As String
On Error Resume Next
GetDecimalPart = Split(CStr(pdblNumber), pstrDecimalSeparator, , vbBinaryCompare)(1)
End Function

MsgBox GetDecimalPart(123.9, ".")

мдя... а просто X - Int(X) ???
...
Рейтинг: 0 / 0
26.11.2006, 19:17
    #34156205
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Aklin VladConnPrivate Function GetDecimalPart(ByVal pdblNumber As Double, pstrDecimalSeparator As String) As String
On Error Resume Next
GetDecimalPart = Split(CStr(pdblNumber), pstrDecimalSeparator, , vbBinaryCompare)(1)
End Function

MsgBox GetDecimalPart(123.9, ".")

мдя... а просто X - Int(X) ???
Дай по дискутировать
...
Рейтинг: 0 / 0
27.11.2006, 04:11
    #34156508
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Aklin,

А просто Split вместо Int и вычитания? И вообще, как-то странно вы не заметили функцию Piece, всего-то на страницу. Прям как в басне.

Кстати, товарищ просил вернуть дробную часть как целое число. Так что в моем примере еще и конвертация потребуется, а в вашем... Попробуйте вашу формулу в Excel: MsgBox 345.5476 - Int(345.5476). Она дает на секундочку 0.5475999999989.

Мда...

Charles Weyland,

По чему?
...
Рейтинг: 0 / 0
27.11.2006, 08:36
    #34156596
sqlru-sqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
а ты ее округли, до нужного знака )
...
Рейтинг: 0 / 0
27.11.2006, 15:02
    #34157947
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frac... как отбросить целую часть от числа в VB?
Вот-вот. Тут округли, там отрежь, проследи, чтобы верно, и опять отбрось целую часть (ноль с точкой), и начни все по новой. Я как раз на этот чудесный путь в решении с Int и намекал.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / frac... как отбросить целую часть от числа в VB? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]