如何在保留原十进制数的前提下统计不含小数点的数字总位数?
统计十进制数的数字总位数(不含小数点)
针对你的问题,直接将数字转成字符串后会包含小数点,导致长度多算1位。可以用以下两种方法解决:
方法一:移除小数点后统计长度
这是最简洁的方式,将字符串中的小数点直接替换为空,再计算长度:
n = 7.14285 digits = len(str(n).replace('.', '')) print(digits) # 输出6
方法二:拆分整数与小数部分分别统计
如果需要单独获取整数或小数部分的位数,可以先拆分两部分再相加:
n = 7.14285 integer_part, decimal_part = str(n).split('.') digits = len(integer_part) + len(decimal_part) print(digits) # 输出6
原代码问题说明
你之前的代码len(str(n))得到7,是因为str(7.14285)会生成字符串"7.14285",其中包含1个小数点和6个数字,总长度为7,去掉小数点后就能得到正确的数字位数。
内容的提问来源于stack exchange,提问作者Kapur
相关产品推荐
相关产品推荐

