用c# double取整数部分
时间: 2025-08-19 16:56:40 浏览: 2
### 如何在C#中获取Double类型的整数部分
在C#中,可以通过多种方式获取`double`类型的整数部分。以下是几种常见的方法:
#### 方法一:使用显式类型转换 `(int)`
这是最简单的方法之一,通过将`double`类型强制转换为`int`类型来截断小数部分。
```csharp
double value = 12.34;
int integerPart = (int)value; // 结果为12
Console.WriteLine(integerPart);
```
这种方法会直接丢弃小数部分[^1],适用于不需要四舍五入的情况。
---
#### 方法二:使用 `Math.Floor`
如果希望向下取整(即使数值为负数),可以使用 `Math.Floor` 函数。
```csharp
double value = -12.34;
double integerPart = Math.Floor(value); // 结果为-13
Console.WriteLine(integerPart);
```
此方法返回的是一个 `double` 类型的结果,因此可能需要进一步转换为 `int` 或其他整数类型[^3]。
---
#### 方法三:使用 `Math.Truncate`
对于正数和负数都适用的情况下,可以直接去掉小数部分而不考虑其方向,可使用 `Math.Truncate`。
```csharp
double value = -12.34;
double integerPart = Math.Truncate(value); // 结果为-12
Console.WriteLine(integerPart);
```
与 `Math.Floor` 不同,`Math.Truncate` 对于负数不会继续向更小的方向取值[^3]。
---
#### 方法四:字符串处理法
虽然不推荐用于性能敏感场景,但也可以通过将数字转为字符串并分割的方式实现。
```csharp
double value = 12.34;
string stringValue = value.ToString();
string integerString = stringValue.Split('.')[0];
int integerPart = int.Parse(integerString); // 结果为12
Console.WriteLine(integerPart);
```
这种方式较为繁琐,在大多数情况下不如前三种方法高效。
---
### 总结
以上四种方法均可满足需求,但在实际开发中应优先选用 **显式类型转换** 和 **Math 库中的函数** 来完成操作。这些方法不仅效率高而且易于理解维护。
```csharp
// 推荐使用的简洁写法
double number = 12.34;
int wholeNumber = (int)Math.Floor(number); // 使用Floor确保兼容所有情况
Console.WriteLine(wholeNumber);
```
阅读全文
相关推荐




















