Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ОГРАНИЧИТЬ КОЛЛИЧЕСТВО СИМВОЛОВ ПОСЛЕ ЗАПЯТОЙ 
:(
    Опции темы
Spawn™Production®
Дата 26.9.2005, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12



M.E.G.U.S, да уж, я потом исправил, но сюда почему-то заостил не тот вариант... smile прям аж стыдно как-то...

NikoLLa, как это не выводит ? Всё там выводится, оно просто не может не вывестись, так как в функции mid стоит установка начинать обрезку с первого символа...

Это сообщение отредактировал(а) Spawn™Production® - 26.9.2005, 18:39


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
NikoLLa
Дата 26.9.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.9.2005
Где: Челябинск

Репутация: нет
Всего: нет



Spawn™Production®, M.E.G.U.S,Эта прога выводит символы после первой цифры, а надо после запятой. Попробуйте ввести не 3.1415926535, а, допустим, "5698,2365"

PM MAIL   Вверх
cardinal
Дата 26.9.2005, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



NikoLLa, помести на форму один TextBox, скопируй мой код и попробуй...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Spawn™Production®
Дата 26.9.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12




Модератор: Сообщение скрыто.



--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
Exception
Дата 26.9.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



вообще-то мой код должен отлично работать.. только temp+2 надо заменить temp+Inputbox("сколько обрезать?")
ЗЫ надо бы прежде чем проги писать, язык поучить.
ЗЗЫ зачем, если не секрет, тебе так над числами извращаться?
PM   Вверх
bom
Дата 26.9.2005, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



А вот еще вариант smile
Код

Function mformat(num As String, ext As Integer) As String
mformat = Left(num, InStrRev(Replace(num, ",", "."), ".") + ext)
End Function

Private Sub Form_Load()
MsgBox mformat("3.14159", 2)
MsgBox mformat("5698,2365", 2)
End Sub

PM MAIL   Вверх
cardinal
Дата 26.9.2005, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Если введены именно цифры, то это вариант... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Naghual
Дата 27.9.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



Мда... Много всего написано...

Код

Option Explicit

Private Const LOCALE_USER_DEFAULT = &H400
Private Const LOCALE_SDECIMAL As Long = &HE

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

Private Function GetDecimalDelimiter() As String
    Dim Buffer As String, Ret As String
    
    Buffer = String$(256, 0)
    Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, Buffer, Len(Buffer))
    If Ret > 0 Then
        GetDecimalDelimiter = Left$(Buffer, Ret - 1)
    Else
        GetDecimalDelimiter = ""
    End If
End Function

Private Sub Command1_Click()
    Dim sNumber As String
    Dim NumDigits As Integer
    Dim DecimalDelimiter As String
    Dim DelimiterPos As Integer
    Dim sIntNumber As String
    Dim sDecNumber As String
    Dim sFormattedNumber As String
    
    ' Исходной число
    sNumber = Me.Text1.Text
    ' Количество символов после запятой
    NumDigits = Me.Text2.Text
    ' Системный символ разделитель целой и дробной частей
    DecimalDelimiter = GetDecimalDelimiter
    ' заменим символ разделитель в числе на правильный
    sNumber = Replace$(sNumber, ",", DecimalDelimiter)
    sNumber = Replace$(sNumber, ".", DecimalDelimiter)
    ' Определяем позицию разделителя в строке
    DelimiterPos = InStr(1, sNumber, DecimalDelimiter)
    
    ' Собственно сам код  :)
    If DelimiterPos > 0 Then
        sIntNumber = Mid$(sNumber, 1, DelimiterPos - 1)
        sDecNumber = Mid$(sNumber, DelimiterPos + 1)
        sFormattedNumber = sIntNumber + DecimalDelimiter + Left$(sDecNumber, NumDigits)
    Else
        sFormattedNumber = sNumber
    End If
    
    ' Показываем результат
    Me.Label1.Caption = sFormattedNumber
End Sub


PS: Тут есть определенные излишества, но все зависит от реализации.
PPS: Необходима форма с двумя Текстбоксами, одним Капшионом и одним Коммандбуттоном. В первый текстбокс забивается оригинальное число во второй количество оставляемых символов.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
NikoLLa
Дата 27.9.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 13.9.2005
Где: Челябинск

Репутация: нет
Всего: нет



smile Народ! Всем огромное спасибо! Вы мне очень помогли. А то я уже у преподов спрашивал - так ничего вразумительного и не объяснили. Завтра иду сдавать.Всем удачи! smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.