:: Меню ::

Головна
  • Про сайт
  • Введення
  • Середовище програмування VB .NET: Visual Studio .NET
  • Вирази, оператори і передача управління
  • Класи і об'єкти
  •  Спадкоємство і інтерфейси
  • Обробка подій і делегати
  • Обробка помилок в VB .NET
  • Форми Windows, графічний вивід і друк
  • Уведення-виведення
  •  Багатопотокові застосування
  • Підтримка баз-даних в VB .NET
  • Короткий огляд ASP .NET
  • Складки .NET, установка додатків і COM Interop
  • Книга для гостей
    Контакти
    Добавити у вибране

    :: Друзі ::

     
     

    :: Лічильники ::

    = =

     

     

     

     

    Форматування даних

    Всі функції форматування повертають новий рядок в заданому форматі. У VB .NET збережені аналоги старих функцій форматування з Vb6 і Vbscript, тому ви можете продовжувати використовувати функції Format, Format Number, For-matcurrency, Formatpercent і Formatdatetime. Останні чотири функції непогано справляються з простим форматуванням, але ми все одно вважаємо за краще використовувати могутніші засоби форматування, реалізовані в .NET Framework.

    Синтаксис форматування в .NET Framework на перший погляд виглядає декілька дивно. Розглянемо нескладний приклад:

    Dim balance As Decimal = 123456

    Dim creditlimit As Decimal = 999999

    Console.WriteLine("Customer balance is {0:c}, credit limit is {1:c} ",_

    balance. creditlimit = balance)

    Результат:

    Customer balance is $123,456.00. credit limit is $876.543.00

    Спробуйте привести фрагмент, виділений жирним шрифтом, до наступного вигляду:

    Console.WriteLine("Customer credit is {1:c}, balance is {0:c} ".

    balance. creditlimit = balance)

    Ви отримаєте наступний результат:

    Customer credit is $876.543.00. balance is $123.456.00

    Змінні, що форматуються, перераховуються в порядку їх проходження в списку. Так, в другому прикладі {1:с} означає другу змінну в списку, а {0:с} відповідає першій змінній (нагадаємо, що індексація в .NET Framework починається з 0). «С» означає форматування в грошовому форматі, визначеному в параметрах локального контексту Windows.

    Математичні оператори

    У таблиці. 3.7 приведені умовні позначення шести базових математичних операцій.

    Результат стандартного ділення (/) завжди відноситься до типу Double, навіть у разі де-ленія без залишку. Результат цілочисельного ділення (\) завжди відноситься до типу Integer. Це означає, що при роботі з типами Decimal і Integer вам доведеться часто використовувати функції перетворення.

    Таблиця 3.7. Математичні операції

    Оператор
    Операція
    + Складання
    - Віднімання (і позначення негативних чисел)
    / Ділення (перетворення до Double — не може викликати виключення Dividebyzero; див. розділ 7)
    \ Цілочисельне ділення (без перетворення — може викликати виключення Dividebyzero)
    * Множення
    ^ Піднесення до ступеня

    Щоб краще знатися на різних типах ділення, можна скористатися методом .NET Gettype. У командах виводу (таких як Writeline) цей метод повертає ім'я типу в строковому уявленні. Розглянемо наступну програму:

    Module Modulel

    Sub Main()

    Console.WriteLine((4 / 2).GetType())

    Console. Readline()

    End Sub

    End Module

    У консольному вікні виводиться рядок

    System.Double

    Можливості методу Gettype не обмежуються простим виведенням імені — зокрема, він використовується в процесі рефлексії. Механізм рефлексії описаний в розділі 4.

    Нижче приведений приклад ситуації, в якій необхідно враховувати тип значення, повертаного оператором ділення. Перед нами проста (але неробоча) версія програми, що перетворює температуру за Цельсієм в температуру за Фаренгейтом. У виділеному рядку відсутній суфікс @, перетворюючий результат ділення до типу Decimal:

    Option Strict On

    Module Modulel Sub Main()

    Dim cdeg As Decimal

    Console.. Writer Enter the degrees in centigrade...")

    cdeg=cdec(Console.ReadLine())

    Dim fdeg As Decimal

    fdeg = (((9 / 5) * cdeg) + 32)

    Console.WriteLine(cdeg & " is " & fdeg & " degrees Fahrenheit.")

    Console. Readline()

    End Sub

    End Module

    Із-за присутності знаку / у виділеному рядку змінної fdeg привласнюється результат типу Double. У режимі жорсткої перевірки типів це приводить до того, що на стадії компіляції буде видано наступне повідомлення про помилку:

    Option Strict disallows implicit conversions from Double to Decimal.

    Як виправити помилку? Тільки не треба прибирати команду Option Strict — це одне з кращих нововведень VB .NET, яке позбавляє вас від злісного спотворення типів. Краще скористайтеся суфіксом @ або перетворіть вираз (повністю або частково) до типу Decimal. Приклад:

    fdeg = ((Cdec(9 / 5)* cdeg) + 32)

    Оскільки результат ділення перетвориться до типу Decimal, результат теж відноситься до типу Decimal.

    Залишається лише відмітити, що в цьому простому прикладі ми використовуємо метод Write замість Wri teli ne, щоб запобігти перекладу рядка після виведення тексту. Крім того, в реальній програмі введені дані слід було б заздалегідь проаналізувати, тому що користувачі часто помиляються при введенні.

    Нарешті, речове ділення в VB .NET відповідає стандарту IEEE, тому замість помилки ділення на нуль тепер відбувається щось дивне. Приклад:

    Sub Main()

    Dim getdata As String

    Dim x, у As Double

    x = 4

    У = 0

    Console.WriteLine("What is 4/0 in VB .NET? " & x / у)

    Console.ReadLine()

    End Sub

    Результат виглядає так:

    What is 4/0 in VB. NET? Infinity

    Результат ділення 0/0 рівний

    NAN (Not A Number, «не є числом»).

    У таблиці. 3.8 перераховані оператори, використовувані тільки при діленні чисел типу Integer і Long.

    Таблиця 3.8. Математичні оператори цілочисельного ділення

    Оператор
    Операція
    \
    Цілочисельне ділення будь-яких цілих чисел
    Mod
    Залишок від цілочисельного ділення

    Оператор \ ігнорує залишок від ділення і повертає результат типу Integer (якщо він відноситься до інтервалу допустимих значень цього типу). Наприклад, 7\3=21. Нагадаємо, що оператор / дає результат типу Double; якщо ви хочете, щоб приватне відносилося до типу Integer — скористайтеся оператором \ або функцією перетворення типу.

    Оператора Mod доповнює оператор цілочисельного ділення і повертає залишок від цілочисельного ділення. Наприклад, 7 Mod 3 = 1. Якщо цілі числа діляться без залишку, оператор Mod повертає 0: 8 Mod 4 = 0.

    Круглі дужки і пріоритет операцій

    При обробці складних виразів послідовність виконання операцій задається двома способами. При використанні круглих Дужок вам не доведеться запам'ятовувати пріоритети різних операцій. У VB .NET, як і в багатьох мовах програмування, операції володіють пріоритетом, що визначає послідовність їх виконання. Множення володіє вищим пріоритетом, ніж складання; отже, вираз 3+4*5 рівне 23, оскільки множення (4*5) виконується раніше, ніж складання.

    Нижче перераховані математичні операції в порядку убування пріоритету.

    1. Піднесення до ступеня (^).
    2. Унарний мінус (зміна знаку числа).
    3. Множення і ділення.
    4. Цілочисельне ділення.
    5. Обчислення залишку (Mod).
    6. Складання і віднімання.

    Якщо дві операції володіють однаковим пріоритетом, порядок виконання визначається порядком їх проходження у виразі (зліва направо).

    Скорочений запис операцій з привласненням

    Для деяких операцій, об'єднаних з привласненням, в VB. NET передбачені скорочені позначення, перераховані в наступній таблиці.

    Скорочений запис
    Еквівалент
    А*=в
    А = А*в
    А+=в
    А = А + У
    А/=в
    А = А/в
    А-=в
    А = А-В
    А\=в
    А = А\в
    А^=в
    А = А^в
    А&=в
    А = А & У (конкатенація рядків)

    Математичні функції і математичні константи

    Вбудовані математичні функції Vb6 працюють і в VB .NET, але ми вважаємо за краще використовувати методи класу Math, що входить в .NET Framework. У цей клас також входять деякі корисні константи (наприклад, Math. PI і Math. Е). Основні математичні функції класу Math перераховані в таблиці. 3.9. Всі ці функції оголошені загальними (shared), тому вони належать класу Math в цілому, а не його окремим екземплярам (які, втім, все одно неможливо створити — див. розділ 4).

    Всі перераховані методи є загальними методами класу Math, тому вони повинні викликатися з префіксом Math — наприклад, Math.Log10(l0).

    У VB .NET передбачена ціла група методів для отримання різноманітних случай-них чисел. Ми розглянемо ці методи в розділі 4, коли мова піде про створення об'єктів.

    Таблиця 3.9. Загальні математичні функції класу Math

    Математична функція
    Опис
    Abs
    Повертає абсолютне значення (модуль) числа
    Acos
    Повертає кут, косинус якого дорівнює заданому числу
    Asin
    Повертає кут, синус якого дорівнює заданому числу
    Atan
    Повертає кут, тангенс якого дорівнює заданому числу
    Ceiling
    Повертає найменше ціле число, більше або рівніше заданому числу
    Cos
    Повертає косинус заданого кута
    Exp Повертає число е (приблизно 2,71828182845905), зведене в заданий ступінь
    Floor Повертає найбільше ціле число, більше або рівніше заданому числу
    Log
    Повертає натуральний логарифм
    Log10
    Повертає десятковий логарифм
    Max
    Повертає більше з двох заданих чисел
    Min
    Повертає менше з двох заданих чисел
    Round
    Повертає ціле число, найближче до заданого числа
    Sign
    Повертає величину, що визначає знак числа
    - Sin
    Повертає синус заданого кута
    Sqrt
    Повертає квадратний корінь
    Tan
    Повертає тангенс заданого кута

     




    :: Наша кнопка ::

    Отримати код:

    Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


    :: Реклама ::

    Скачати безкоштовно програму Microsoft Front Page 2003


    :: Посилання ::

    -


     

     

     


    Copyright ©