Список.Net Numeric Type Initialization Identifiers

Произошла ошибка при запуске предложенной вами команды:

$ docker run --interactive --tty --rm --net = host --volume = // var / run / docker. sock: //var/run/docker.sock --volume = / $ {PWD} / che / data: / затмение данных / che: ночной старт

Следующее является журналом:

[113 ] Невозможно найти изображение 'eclipse / che: latest', локально последний: извлечение из eclipse / che d6a5679aa3cf: полное извлечение cc87d3e420c3: полное завершение afef80a99ec8: полное завершение d4be2f254bed: полное извлечение 3e449e5a7821: полное завершение: Pull завершение 3 Добыча завершена Дайджест: sha256: bd853bd40a4fafe73153dda478f1191d3d29447f3d110584933a5fb22e8cb199 Статус: загружен более новый образ для eclipse / che: последняя ошибка: нет такого изображения или контейнера: вчера не было такого изображения или контейнера: ошибка linuxkit-00155d19290k

: я не получил [112] [я не получил

: я не получил [112] [я не получил [114] [я не получил [114] [я не получил]

[я не получил [114] [я не получил [114] [я не получил]

[я не получил [112] [я не получил [114] [я ошибался]: [114] [114]
5
задан Micah 26 March 2009 в 14:45
поделиться

3 ответа

C#

Раздел 1.8 из спецификации C# включают эти значения.

суффикс целого типа: один из U u L l УЛ. Ul uL ул. лютеций лютеция Лютеция LU

реальный суффикс типа: один из F f D d M m

Раздел 2.4.4.2 уточняет это для Целых типов:

Тип целочисленного литерала определяется следующим образом:

  • Если литерал не имеет никакого суффикса, он имеет первый из этих типов, в которых может быть представлено его значение: интервал, uint, долго, ulong.
  • Если литерал снабжается суффиксом U или u, он имеет первый из этих типов, в которых может быть представлено его значение: uint, ulong.
  • Если литерал снабжается суффиксом L или l, он имеет первый из этих типов, в которых может быть представлено его значение: долго, ulong.
  • Если литерал снабжается суффиксом УЛ., ул., ул., ул., LU, Лютецием, лютецием или лютецием, это имеет тип ulong.

Раздел 2.4.4.3 уточняет это для Реальных типов:

Если никакой реальный суффикс типа не указан, тип реального литерала двойной. Иначе реальный суффикс типа определяет тип реального литерала, следующим образом:

  • Реальный литерал, снабженный суффиксом F или f, имеет плавание типа. Например, литералы 1f, 1.5f, 1e10f, и 123.456F являются всем плаванием типа.
  • Реальный литерал, снабженный суффиксом D или d, имеет тип дважды. Например, литералы 1d, 1.5d, 1e10d, и 123.456D все имеют тип дважды.
  • Реальный литерал, снабженный суффиксом M или m, имеет десятичное число типа. Например, литералы 1 м, 1.5 м, 1e10 м, и 123.456M являются всем десятичным числом типа. Этот литерал преобразовывается в десятичное значение путем принятия точное значение, и, при необходимости, округления к ближайшему представимому значению с помощью округления банкира (Раздел 4.1.7). Любой масштаб, очевидный в литерале, сохраняется, если значение не округлено, или значение является нулем (в котором последнем случае знак и масштаб будут 0). Следовательно, литеральные 2.900 м будут проанализированы, чтобы сформировать десятичное число со знаком 0, коэффициент 2900, и масштабироваться 3.

VB

Точно так же спецификация VB содержит детали и для Целочисленных и для литералов С плавающей точкой.

Для целых чисел:

ShortCharacter:: = S
IntegerCharacter:: = Я
LongCharacter:: = L

Для плавающих точек:

SingleCharacter:: = F
DoubleCharacter:: = R
DecimalCharacter:: = D

10
ответ дан 18 December 2019 в 14:51
поделиться

Лично, я не всегда использую идентификаторы по точно причинам (память), повышенная здесь. Интересная функция компилятора C# - то, что он на самом деле компилирует следующее в то же самое:

static void Foo()
{
    var x = 100F;
    Console.WriteLine(x);
}
static void Bar()
{
    var x = (float)100; // compiled as "ldc.r4 100" - **not** a cast
    Console.WriteLine(x);
}

Я нахожу вторую версию намного более читаемой. Таким образом, я использую тот подход. Единственное время AFAIK, что это делает что-либо различное, с десятичным числом с конечными нулями - т.е.

static void Foo()
{
    var x = 100.00M;
    Console.WriteLine(x);
}
static void Bar()
{
    var x = (decimal)100.00; // compiled as 100M - extended .00 precision lost
    Console.WriteLine(x);
}
3
ответ дан 18 December 2019 в 14:51
поделиться

В VB Вы должны иметь

Опция, строгая на

Dim x as Decimal = 1D 'Decimal'
Dim y as Double = 1.0 'initializes to double'
Dim z as Integer = 1 'integer
0
ответ дан 18 December 2019 в 14:51
поделиться