C# 中将 double 转换为 int

2024 年 8 月 29 日 | 4 分钟阅读

C# 中,开发人员经常需要进行数据类型转换。将 double 数据类型 转换为 int 数据类型 是其中之一。然而,这两种类型之间固有的差异可能会使这个看似简单的过程变得困难。

C# 中的 double 数据类型表示双精度浮点数,支持小数。另一方面,int 数据类型 用于仅存储整数,没有小数部分。由于在转换过程中 double 的小数部分可能会被截断,因此将 double 转换为 int 可能会导致数据丢失。在本文中,将介绍 C# 中将 double 转换为 int 的两种方法,并分析它们的优点和缺点。

方法 1 - 使用显式类型转换

第一种方法使用显式类型转换将 double 转换为 int。以下是该方法代码:

输出

Using the Explicit Type Casting method
The original Double Value is: 4.677
After converting from double to integer the Integer Value is: 4

说明

  1. using System;: 包含 System 命名空间,其中包含各种系统相关活动的类和方法,例如输入和输出。
  2. public class Program: 此行定义程序有一个公共类。
  3. public static void Main(): 此行定义程序从此函数启动。它是控制台程序的初始步骤,因为它是一个不带参数的名为 Main() 的静态方法。
  4. double double_Value = 4.677;: 此行声明一个名为 double_Value 的 double 变量,并为其赋值 4.677
  5. int int_Value = (int)double_Value;: 在这种情况下,代码通过在 double_Value 前面加上 (int) 来显式将其转换为整数。通过此操作,double 值的整数部分存储在 int_Value 变量中,而该值的小数部分被有效地截断。在此实例中,小数部分 677 被截断。因此,int_Value 将设置为 4。
  6. 使用以下行打印结果:
    • "Using Explicit Type Casting method" 在控制台窗口中;: 此消息仅用作标识输出目标的标题。
    • WriteLine($"Original Double Value is: double_Value");: 此行打印 double_Value 变量中存储的原始 double 值。
    • WriteLine($"After converting from double to integer, the Integer Value is: int_Value"): 在此行中,在显式类型转换后显示整数值。

程序按顺序显示原始 double 值,即 4.677,然后是转换为整数后的 double 值,即 4。在类型转换过程中,double 值的小数部分被丢弃。

方法 2 - 使用 Math.Round()

第二种方法涉及应用 Math.Round() 函数将 double 转换为 int。现在查看此方法的代码:

输出

Using Math.Round() method
The original Double Value is: 6.583
After Converting from double to int the Integer Value: 7

说明

  1. using System;: 包含 System 命名空间,其中包含各种系统相关活动的类和方法,例如输入和输出。
  2. public class Program: 此行定义程序有一个 公共类
  3. public static void Main(): 它是程序启动的主函数。它是名为 Main() 的静态方法,没有参数,因此是控制台程序的起始点。
  4. double double_Value = 6.583;: 在此行中,声明一个名为 double_Value 的 double 变量,并为其赋值 6.583
  5. (int) int_ValueMath.Round(double_Value);: 在此情况下,使用 Round 方法将 double_Value 四舍五入到最接近的整数,然后将结果显式转换为 int。由于 6.5836 更接近 7,因此此操作会将 6.583 四舍五入为 7
  6. 使用以下行打印结果:
    • WriteLine("Using Math.Round() method");: 此消息仅用作标识输出目标的标题。
    • WriteLine($"Original Double Value is: double_Value"); 此行打印最初存储在 double_Value 变量中的 double 值。
    • WriteLine($"The Integer Value is int_Value After Converting from double to int;");: 进行一些数学运算后,此行输出整数值。类型转换和四舍五入。

程序首先显示原始 double 值,即 6.583,然后显示通过使用 Math.Round 获得的四舍五入后的整数值,即 7。double 值通过 Math.Round 方法根据可接受的四舍五入约定四舍五入到最接近的整数。