Java如何去除整数部分,仅提取数值的小数部分?
示例输出

Java提取求和结果小数部分的实现方法
以下是两种不同场景下的实现方案:
方法1:取模运算实现(适合普通低精度场景)
核心逻辑为数值对1取模后直接返回小数部分,实现简单高效:
public class DecimalExtractor { public static void main(String[] args) { // 模拟用户输入求和后的结果 double sum = 127.68; // 对1取模直接得到小数部分 double decimalPart = sum % 1; // 若需要统一返回正小数,可新增绝对值处理 // decimalPart = Math.abs(decimalPart); System.out.println("提取的小数部分:" + decimalPart); } }
注意:该方案存在浮点精度丢失问题,仅适合非敏感业务场景使用
方法2:BigDecimal实现(高精度场景推荐)
针对财务、计量等对精度要求高的场景,使用BigDecimal处理可完全避免精度丢失问题:
import java.math.BigDecimal; import java.math.RoundingMode; public class HighPrecisionDecimalExtractor { public static void main(String[] args) { // 模拟高精度求和结果,必须传入字符串构造避免精度丢失 BigDecimal sum = new BigDecimal("256.1234567890123456"); // 提取整数部分 BigDecimal integerPart = sum.setScale(0, RoundingMode.DOWN); // 总和减去整数部分得到精确小数部分 BigDecimal decimalPart = sum.subtract(integerPart); System.out.println("提取的高精度小数部分:" + decimalPart); } }
内容的提问来源于stack exchange,提问作者Angelo Valencia
相关产品推荐
相关产品推荐

