Читаем C# 4.0 полное руководство - 2011 полностью

Если приведение типов приводит ксужающему преобразованию,то часть информации может быть потеряна. Например, в результате приведения типа long к типу int часть информации потеряется, если значение типа long окажется больше диапазона представления чисел для типа int, поскольку старшие разряды этого числового значения отбрасываются. Когда же значение с плавающей точкой приводится к целочисленному, то в результате усечения теряется дробная часть этого числового значения. Так, если присвоить значение 1,23 целочисленной переменной, то в результате в ней останется лишь целая часть исходного числа (1), а дробная его часть (0,23) будет потеряна.

В следующем примере программы демонстрируется ряд преобразований типов, требующих приведения. В этом примере показан также ряд ситуаций, в которых приведение типов становится причиной потери данных.

// Продемонстрировать приведение типов.

using System;

class CastDemo {

static void Main { double x, y; byte b; int i; char ch; uint u; short s; long 1;

x = 10.0;

У = 3.0;

11Приведение типа double к типу int, дробная часть числа теряется, i = (int) (х / у) ;

Console.WriteLine("Целочисленный результат деления х / у: " + i) ; Console.WriteLine;

// Приведение типа int к типу byte без потери данных, i = 255; b = (byte) i;

Console.WriteLine("b после присваивания 255: " + b +

" -- без потери данных.");

// Приведение типа int к типу byte с потерей данных, i = 257; b = (byte) i;

Console.WriteLine("b после присваивания 257: " + b +

" — с потерей данных.");

Console.WriteLine;

// Приведение типа uint к типу short без потери данных, и = 32000; s = (short) u;

Console.WriteLine("s после присваивания 32000: " + s + " — без потери данных.");

// Приведение типа uint к типу short с потерей данных, и = 64000; s = (short) u;

Console.WriteLine("s после присваивания 64000: " + s + " — с потерей данных. ") ;

Console.WriteLine;

// Приведение типа long к типу uint без потери данных.

1 = 64000; u = (uint) 1;

Console.WriteLine("и после присваивания 64000: " + u +

" -- без потери данных.");

// Приведение типа long к типу uint с потерей данных.

1= -12;u = (uint) 1;

Console.WriteLine("и после присваивания -12: " + u +

" — с потерей данных.");

Console.WriteLine;

// Приведение типа int к типу char, b = 88; // код ASCII символа X ch = (char) b;

Console.WriteLine("ch после присваивания 88: " + ch);

}

}

Вот какой результат дает выполнение этой программы.

Целочисленный результат деления х / у: 3

b после присваивания 255: 255 -- без потери данных.

Ь после присваивания 257: 1 — с потерей данных.i

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных