获取double的整数部分和小数部分

该代码段展示了如何在Java中将double类型的数值v拆分,提取出整数longLongPart和小数部分doubleDoublePart。通过将double转换为String,然后利用BigDecimal进行精确计算,减去整数部分得到小数部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     double v = 0.11;
        // 整数部分
        long longPart = (long) v;
        // 原数减去整数部分,为小数部分
        double doublePart = new BigDecimal(String.valueOf(new Double(v))).subtract(new BigDecimal(longPart)).doubleValue();

### C# 中获取 `double` 类型数值的整数部分 在 C# 中,可以通过多种方式来获取 `double` 类型数值的整数部分。以下是几种常用的方法: #### 使用显式类型转换 最简单的方式是使用显式的类型转换 `(int)` 或者其他适合的整数类型来进行强制转换。 ```csharp double value = 12.34; int intValue = (int)value; // 结果为 12 Console.WriteLine($"整数部分: {intValue}"); ``` 这种方法会直接截断小数部分而不做四舍五入处理[^1]。 #### 利用 `Math.Floor()` 函数 对于正负数都可以适用的是调用 `Math.Floor()` 方法,它返回小于等于给定参数的最大整数。 ```csharp double positiveValue = 12.89; double negativeValue = -12.89; double floorPositive = Math.Floor(positiveValue); // 结果为 12 double floorNegative = Math.Floor(negativeValue); // 结果为 -13 Console.WriteLine($"正数的地板值: {floorPositive}"); Console.WriteLine($"负数的地板值: {floorNegative}"); ``` 此方法同样不会执行任何类型的舍入操作[^5]。 #### 应用 `Convert.ToInt32()` 转换 还可以考虑采用 `Convert.ToInt32()` 来实现从浮点到整数的转变,不过需要注意当遇到超出范围的情况时可能会抛出异常。 ```csharp try { double largeDouble = 2_000_000_000.789; int convertedInt = Convert.ToInt32(largeDouble); Console.WriteLine($"转换后的整数: {convertedInt}"); } catch (OverflowException ex) { Console.WriteLine("溢出了!"); } ``` 这种情况下如果原始 `double` 的绝对值超过了目标整数类型的表示能力,则会发生溢出错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值