90.99995转成intC#
时间: 2024-11-23 07:07:47 浏览: 10
在C#中,将像`90.99995`这样的浮点数精确地转换为`int`类型时,由于浮点数的存储不是无限精确的,可能会有微小的精度损失。当你尝试将这个值转换为`int`时,它会被截断到最接近的整数,即`90`。因为`90.99995`小于`91`,所以它会被向下取整。
这里是一个例子:
```csharp
double originalValue = 90.99995;
int integerValue = (int)originalValue;
Console.WriteLine(integerValue); // 输出: 90
```
如果你需要保留小数部分,通常应该使用`decimal`类型,而不是`double`,因为`decimal`提供更高的精度。转换为`decimal`后再转换回`int`,会有更精确的结果:
```csharp
decimal originalDecimal = 90.99995m;
int integerValue = (int)originalDecimal;
```
但是请注意,即使使用`decimal`,也不能保证完全精确,因为仍然存在潜在的精度误差,尤其是当数值非常大或非常小时。
阅读全文