unity的C#学习——浮点常量、字符常量和字符串常量

浮点常量

在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 × 1 0 − 28 1.0 \times 10^{-28} 1.0×1028 ~ 7.9 × 1 0 28 7.9 \times 10^{28} 7.9×1028,而float和double类型的取值范围分别为 1.5 × 1 0 − 45 1.5 \times 10^{-45} 1.5×1045 ~ 3.4 × 1 0 38 3.4 \times 10^{38} 3.4×1038 5.0 × 1 0 − 324 5.0 \times 10^{-324} 5.0×10324 ~ 1.7 × 1 0 308 1.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'); // 雪花字符
    }
}

输出如下:

!
©

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

转义序列 含义
\\ \ 字符
\’ ’ 字符
\" " 字符
\? ? 字符
\a Alert 或 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";

猜你喜欢

转载自blog.csdn.net/qq_50571974/article/details/129712770