218

在 C/C#/等中。你可以告诉编译器一个文字数字不是它看起来的样子(即,float而不是doubleunsigned long而不是int):

var d = 1.0;  // double
var f = 1.0f; // float
var u = 1UL;  // unsigned long

等等

有人可以指出这些清单吗?我正在专门寻找shortor的后缀Int16

4

5 回答 5

369
var d  = 1.0d;  // double
var d0 = 1.0;   // double
var d1 = 1e+3;  // double
var d2 = 1e-3;  // double
var f  = 1.0f;  // float
var m  = 1.0m;  // decimal
var i  = 1;     // int
var ui = 1U;    // uint
var ul = 1UL;   // ulong
var l  = 1L;    // long

我认为这就是全部...... short/ushort/byte/sbyte 没有文字说明符

于 2011-04-28T15:07:18.130 回答
44

整数文字

整数文字的类型确定如下:

  • 如果字面量没有后缀,则它具有可以表示其值的第一个类型:int, uint, long, ulong
  • U如果文字以or为后缀u,则它具有可以表示其值的以下类型中的第一个:uint, ulong.
  • L如果文字以or为后缀l,则它具有可以表示其值的以下类型中的第一个:long, ulong.
  • UL如果文字以, Ul, uL, ul, LU, Lu, lU, or为后缀lu,则它的类型为ulong

真正的文字

如果未指定实数类型后缀,则实数字面量的类型为 double。否则,实数类型后缀决定实数字面量的类型,如下:

  • F以or为后缀的真实文字f是 类型float。例如,文字1f1.5f1e10f123.456F都是 type float
  • D以or为后缀的真实文字d是 类型double。例如,文字1d1.5d1e10d123.456D都是 type double
  • M以or为后缀的真实文字m是 类型decimal。例如,文字1m1.5m1e10m123.456M都是 type decimal。该文字通过取精确值转换为十进制值,并在必要时使用银行四舍五入四舍五入到最接近的可表示值(第 4.1.7 节)。除非值被四舍五入或值为零(在后一种情况下,符号和比例将为 0),否则文字中明显的任何比例都会被保留。因此,文字2.900m将被解析为带有符号0、系数2900和比例的小数3
于 2011-04-28T15:07:34.913 回答
9

如果你的变量还不是很短,你必须明确地转换它:

Object s = (Int16) 1;
于 2013-03-14T16:00:07.797 回答
3

没有一个简称。只需使用short s = 1;.

于 2011-04-28T15:07:22.150 回答
0

var myValue = unchecked((short)0x7F00);

文字是 int,因此必须强制转换为目标类型。如果发生值溢出,则需要未经检查。

于 2022-01-26T05:51:53.270 回答