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

Python中获取float类型小数位数(含末尾零)的方法

解决方案

情况1:获取Excel单元格设置的显示小数位数

如果需要拿到Excel里单元格格式指定的小数位数(比如单元格设置为保留2位小数,即使数值是1.2也显示1.20),可以直接读取Excel的单元格格式信息,用openpyxl实现:

from openpyxl import load_workbook

# 加载Excel文件
wb = load_workbook("your_file.xlsx")
ws = wb["Sheet1"]  # 替换成你的工作表名

def extract_decimal_places(num_format):
    # 解析Excel的数字格式字符串
    if "." not in num_format:
        return 0
    # 拆分格式中的小数点部分,统计固定显示的零的数量(#是可选数字,不算)
    decimal_part = num_format.split(".")[1]
    return sum(1 for char in decimal_part if char == "0")

# 遍历目标列(比如A列,从第2行开始跳过表头)
for row in ws.iter_rows(min_row=2, min_col=1, max_col=1):
    cell = row[0]
    decimal_places = extract_decimal_places(cell.number_format)
    print(f"单元格{cell.coordinate}的显示小数位数: {decimal_places}")

情况2:获取数值实际存储的小数位数(含末尾零)

这种情况要求Excel里的数值是文本格式存储的(否则Excel会自动把1.20存为1.2,丢失末尾零),此时用pandas按字符串类型读取,再统计小数位数:

import pandas as pd

# 读取时指定目标列为字符串类型
df = pd.read_excel("your_file.xlsx", dtype={"target_column": str})

def count_decimal_digits(s):
    if "." in s:
        return len(s.split(".")[-1])
    return 0

# 计算小数位数并新增列
df["decimal_digits"] = df["target_column"].apply(count_decimal_digits)

注意事项

  • 如果Excel里的数值是常规格式存储的浮点数,本质上1.2和1.20是同一个值,无法从数值本身恢复末尾零,只能通过读取单元格格式获取显示位数。
  • 若必须保留数值的末尾零,建议在Excel中先将单元格设置为文本格式再输入数据,确保存储的是完整字符串。

内容的提问来源于stack exchange,提问作者t197453

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:27:12