unity的C#学习——浮点常量、字符常量和字符串常量
创始人
2025-06-01 19:58:16

浮点常量

在C#中,一个浮点常量是由整数部分、小数点、小数部分和指数部分组成。浮点常量可以使用以下几种表示形式(大写与小写效果等价):

  1. 十进制表示法:使用小数点来表示浮点数(默认为double类型),例如:3.14、0.5、-1.23等等。

  2. 科学计数法:使用e或E来表示10的幂次方(默认为double类型),例如:1.2e-3表示0.0012,2.5E2表示250。

  3. 后缀f或F:用于标识浮点常量(float类型),例如:3.14f、0.5F、-1.23f等等。

  4. 后缀m或M:用于标识十进制浮点常量(decimal类型),例如:1.2m、0.5M、-1.23m等等。

例如,以下代码展示了C#中浮点常量的不同表示形式:

float f1 = 3.14f;
double d1 = 2.5E2;
decimal d2 = 1.2m;

请注意,在不使用任何后缀的情况下声明浮点常量时,默认为double类型。如果想要声明float类型的浮点常量,需要使用后缀f或F。同样,如果想要声明decimal类型的浮点常量,需要使用后缀m或M。

与float和double类型相比,decimal类型有以下不同之处:

  1. 精度更高:decimal类型的数值可以提供更高的精度,可以存储28位有效数字,而float和double类型分别只能存储7位和15位有效数字。
  2. 数值范围更小:decimal类型的数值可以表示比float和double类型更小的数值范围,它的取值范围约为1.0×10−281.0 \times 10^{-28}1.0×10−28 ~ 7.9×10287.9 \times 10^{28}7.9×1028,而float和double类型的取值范围分别为1.5×10−451.5 \times 10^{-45}1.5×10−45 ~ 3.4×10383.4 \times 10^{38}3.4×1038和5.0×10−3245.0 \times 10^{-324}5.0×10−324 ~ 1.7×103081.7 \times 10^{308}1.7×10308。
  3. 运算精度更高:在进行运算时,decimal类型的数值可以避免一些常见的精度问题,例如float类型的数值可能会因为精度问题产生舍入误差,而decimal类型的数值可以避免这种问题。

有效数字(significant digits)是指数值中的数字中不包括前导零和末尾的零的数字,它们是对数值精度的一种度量。例如,在数值3.14159中,有效数字为6。在数值0.00314中,有效数字为3。

  • 有效数字与数值范围没有关系,数值范围限制的主要是科学计数法表示时的指数大小,而有效数字限制的主要是十进制表示法时最大位数。
  • 对于decimal类型,它可以存储28个有效数字,也就是说,它可以准确地表示28位小数位的数值。这比float和double类型的有效数字要多得多,float类型可以提供6-7位的有效数字,而double类型可以提供15-16位的有效数字。因此,在需要高精度计算时,使用decimal类型可以避免精度损失。

字符常量

字符常量是括在单引号里,例如'x',且可存储在一个简单的字符类型变量中。一个字符常量可以是一个普通字符(例如 'x')、一个转义序列(例如 '\t')或者一个通用字符(例如 '\u02C0')。

通用字符是一种Unicode字符,用于表示其他字符集中的字符。这些字符包括控制字符、标点符号、数学符号等。通用字符以反斜杠加上一个u和4个十六进制数字表示,其中这4个数字表示Unicode字符的代码点。

下面是一些C#中使用通用字符的示例:

using System;class Program {static void Main(string[] args) {Console.WriteLine('\u0020'); // 空格字符Console.WriteLine('\u0021'); // 感叹号字符Console.WriteLine('\u00A9'); // 版权符号Console.WriteLine('\u2190'); // 向左箭头Console.WriteLine('\u2603'); // 雪花字符}
}

输出如下:

!
©

转义字符(序列)和通用字符虽然有相似之处,但不是一个概念,以下是常见的转义字符:

转义序列含义
\\\ 字符
\’’ 字符
\"" 字符
\?? 字符
\aAlert 或 bell
\b退格键(Backspace)
\f换页符(Form feed)
\n换行符(Newline)
\r回车
\t水平制表符 tab
\v垂直制表符 tab
\ooo一到三位的八进制数
\xhh . . .一个或多个数字的十六进制数

以下是转义序列字符的实例:

namespace EscapeChar
{class Program{static void Main(string[] args){Console.WriteLine("Hello\tWorld\n\n");Console.ReadLine();}}
}

当上面的代码被编译和执行时,它会产生下列结果:Hello World


字符串常量

字符串常量是括在双引号 “” 里,或者是括在 @“” 里(之前提到过@符号用于消除转义序列的作用)。字符串常量包含的字符与字符常量相似,可以是:普通字符转义序列通用字符

使用字符串常量时,可以把一个很长的行拆成多个行,可以使用空格分隔各个部分。

这里是一些字符串常量的实例,下面所列的各种形式表示相同的字符串:

string a = "hello, world";                  // hello, world
string b = @"hello, world";               // hello, world
string c = "hello \t world";               // hello     world
string d = @"hello \t world";               // hello \t world
string e = "Joe said \"Hello\" to me";      // Joe said "Hello" to me
string f = @"Joe said ""Hello"" to me";   // Joe said "Hello" to me
string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt
string i = "one\r\ntwo\r\nthree";
string j = @"one
two
three";

相关内容

热门资讯

玛雅人的五大预言 玛雅人预言2... 曾经玛雅人预言2012年是世界末日,但当时好像没有发生什么。没想到10年后的2022年,疫情,战争,...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
cad打印线条粗细设置 cad... 004-线型(下)打印样式设置和线型文件使用一、线宽设置方法制图规范里边的线宽要求,我们已经定义好,...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...