Убедитесь, что число указано правильно в .NET.
Вопрос
Я знаю, что могу присвоить значение конкретно веществу с плавающей запятой, выполнив
float y = 4.5f;
Я хочу сделать то же самое, только в виде байта.Как мне это сделать?Я проверил документацию MSDN и не нашел ничего, связанного с этим.И еще, как это называется?
Спасибо,
[Редактировать]
Для ясности код, который я использую, это
byte myByte = a==b?1:0;
и я получаю ошибку
Не может косвенно преобразовать тип «int» в байт? '.Существует явное преобразование (вам не хватает актерского состава?)
Решение
byte myByte = (byte)(a==b?1:0);
Решение
А byte
, sbyte
, short
и ushort
типы данных не имеют назначенных суффиксов.Однако целочисленный литерал может быть присвоен переменным этих типов данных и будет неявно преобразован, предполагая, что значение подходит для хранения в переменной.Для справки, вот определенные литералы в C#:
uint: U or u
long: L or l
ulong: UL or ul
float: F or f
decimal: M or m
Другие советы
Я бы просто использовал гипс.
// Okay
Byte data = (Byte) 57;
// Error (but I don't know if it is a compiler error or a runtime error)
Byte data = (Byte) -17;
Или ввести константу.
// Okay
const Byte foo = 57;
Byte data = foo;
// Compiler Error
const Byte foo = -17;
Byte data = foo;
В соответствии с эта почта, у байта нет такого суффикса.
Вам не нужен суффикс при определении байта:
byte b = 1;
Вам просто нужно убедиться, что ваше значение находится в диапазоне от 0 до 255.
MSDN называет использование буквы F «суффиксом», что приводит к использованию буквального типа.
См. следующую статью на До-диез онлайн Чтобы получить больше информации
Шестнадцатеричное обозначение:
Байт б = 0xff;