You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现只打印数字的小数部分?

提取数字小数部分的实现方案

你之前使用的{0:.2f}类固定小数位格式化方法只能输出固定长度的小数,会出现截断长小数、补零短小数的问题,无法适配任意长度的小数输出需求,推荐使用字符串分割的通用方案,适配所有场景:

核心思路

将数字转为字符串格式,按小数点.做分割,取分割后的小数段内容,拼接前缀.即可得到目标输出,不会修改原有小数的位数。

各语言实现代码

Python

def get_decimal_part(num):
    # 若输入是字符串类型的数字可直接跳过str转换,避免浮点数精度丢失
    num_str = str(num)
    if '.' in num_str:
        return '.' + num_str.split('.')[1]
    # 整数输入可按需修改返回值,比如返回'.0'或者空字符串
    return ''

# 测试用例
test_nums = [100.56, 455.345, 89.5]
for n in test_nums:
    print(get_decimal_part(n))

输出结果:

.56
.345
.5

JavaScript

function getDecimalPart(num) {
    const numStr = num.toString()
    if(numStr.includes('.')) {
        return '.' + numStr.split('.')[1]
    }
    return ''
}
// 测试
const testNums = [100.56, 455.345, 89.5]
testNums.forEach(n => console.log(getDecimalPart(n)))

Java

public class DecimalPartUtil {
    public static String getDecimalPart(double num) {
        String numStr = String.valueOf(num);
        if (numStr.contains(".")) {
            return "." + numStr.split("\\.")[1];
        }
        return "";
    }

    public static void main(String[] args) {
        double[] testNums = {100.56, 455.345, 89.5};
        for (double n : testNums) {
            System.out.println(getDecimalPart(n));
        }
    }
}

注意:如果对精度要求极高,建议直接处理原始输入的字符串格式数字,不要先转成浮点数再处理,避免浮点数精度丢失导致小数部分异常。如果需要固定小数位数,可以先做四舍五入处理后再执行分割逻辑。

内容的提问来源于stack exchange,提问作者Jeedeck Cruz Lapidario

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:06:04