ПОНЯТНО О Visual Basic NET


Single и Double – десятичные дроби


С типом дробных чисел Double мы встретились в 5.2.3. Познакомимся поближе с ним и с типом Single. Оба они предназначены для работы с целыми и дробными числами и различаются, согласно таблице, точностью и диапазоном значений.

Создайте кнопку и введите такую программу:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim a, b, c As Single

        a = 23.456

        b = 100

        c = a + b

        WriteLine(a) : WriteLine(b) : WriteLine(c)

 

        Dim d, f, g As Double

        d = 123456789

        f = 0.000555

        g = d + f

        WriteLine(d) : WriteLine(f) : WriteLine(g)

End Sub

Обратите внимание, что оператор Dim d, f, g As Double находится не на самом верху процедуры. Это ничего. Надо только, чтобы объявление переменной было расположено в процедуре раньше ее «употребления».

Запустите проект. Вот результат:

23,456

100

123,456

123456789

0,000555

123456789,000555

Все правильно. Попробуем теперь проверить тип Single на прочность, как мы проверяли тип Integer. Попробуем записать вместо  a = 23.456 очень длинную дробь:

a = 23.45678901234567890123456789

Но VB не дает нам роскошествовать. Он прямо в окне кода укорачивает строку до:

        a = 23.456789012345681

причем даже чуть-чуть искажает число. Поставим курсор мыши на этот литерал и увидим подсказку «Double». Почему? Ведь переменная a имеет тип Single! Дело в том, что VB, пока проект не запущен, не утруждает себя угадыванием смысла литералов в окне кода и все дробные литералы «стрижет под Double». Запустим проект. Вот первые три числа результатов:

23,45679

100

123,4568

Как видите, VB обрезал наши длинные числа до 7 значащих цифр. Сделал он это потому, что 4 байта, отведенные под ячейку памяти для переменной типа Single, не в состоянии вместить больше. Если мы хотим иметь большую точность, то объявляем наши переменные типом Double. Под переменную типа Double компьютер отводит в памяти 8 байтов и поэтому она может быть гораздо длиннее – 17 значащих цифр.




Начало  Назад  Вперед



Книжный магазин