C# 中的 float、Double 和 Decimal

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. C# 中的浮点数数据类型
  2. C# 中的 Double 数据类型
  3. C# 中的十进制数据类型
  4. C# 中的浮点数,双精度数和十进制数
C# 中的 float、Double 和 Decimal

本教程将讨论 C# 中的浮点数、双精度数和十进制数数据类型之间的异同。

C# 中的浮点数数据类型

浮点数数据类型在 C# 中存储浮点值。float 关键字用于声明一个 float 变量。我们必须在初始化过程中使用 f 说明符来告诉编译器该值是浮点值。浮点变量的大小为 32 位,这意味着它可以存储从 -3.402823e38+3.402823e38 的值。浮点变量在 C# 中的精度为 7 位。以下代码示例向我们展示了如何在 C# 中声明一个 float 变量。

using System;

namespace data_types
{
        static void Main(string[] args)
        {
            float fval = 100.0f/3;
            Console.WriteLine(fval);
        }
    }
}

输出:

33.33333

我们在 C# 中使用 float 关键字和 f 指定符初始化了 float 变量 fval。打印输出显示,fval 的精度仅为 7 位。

C# 中的 Double 数据类型

Double 数据类型也将浮点值存储在 C# 中。double 关键字用于声明一个 double 变量。我们必须在初始化期间使用 d 指示符来告知编译器该值为双精度值。双精度变量的大小为 64 位,这意味着它可以存储从 -1.79769313486232e308+1.79769313486232e308 的值。在 C# 中,双精度变量的精度为 15 位。以下代码示例向我们展示了如何在 C# 中声明一个 double 变量。

using System;

namespace data_types
{
        static void Main(string[] args)
        {
            double dval = 100.0d / 3;
            Console.WriteLine(dval);
        }
    }
}

输出:

33.3333333333333

我们在 C# 中使用 double 关键字和 d 指定符初始化了双变量 dval。打印输出显示,dval 的精度为 15 位。

C# 中的十进制数据类型

十进制数据类型也将浮点值存储在 C# 中。decimal 关键字用于声明一个十进制变量。在初始化过程中,我们必须使用 M 说明符来告知编译器该值为十进制值。十进制变量的大小为 128 位,这意味着它可以存储从 -79,228,162,514,264,337,593,543,950,335+79,228,162,514,264,337,593,543,950,335 的值。在 C# 中,十进制变量的精度为 29 位。以下代码示例向我们展示了如何在 C# 中声明一个十进制变量。

using System;

namespace data_types
{
        static void Main(string[] args)
        {
            decimal dval = 100.0M / 3;
            Console.WriteLine(dval);
        }
    }
}

输出:

33.333333333333333333333333333

我们在 C# 中使用 decimal 关键字和 M 指定符初始化了十进制变量 dval。打印输出显示,dval 的精度为 29 位。

C# 中的浮点数,双精度数和十进制数

floatdouble 数据类型的精度和大小低于 decimal 数据类型。因此,建议使用十进制数据类型来记录需要大量重要数字(例如金融交易)的敏感信息。但是,十进制数据类型比浮点型和双精度数据类型慢得多。因此,每当我们处理一些已经是近似值并且不需要非常高的精度的科学值时,我们都可以根据需要使用 floatdouble 数据类型。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Float

相关文章 - Csharp Double

相关文章 - Csharp Decimal