如何在Python中将E记数字符串转为固定指数-3的浮点数并提取尾数
科学计数法转固定指数(-3)并提取尾数
核心逻辑
- 拆分输入字符串的尾数和指数部分
- 计算当前指数与目标指数(-3)的差值,通过幂运算调整原尾数,使得新的指数固定为-3
- 调整后的尾数即为最终需要提取的结果,对应的浮点数形式为「调整后尾数E-3」
Python 实现代码
def process_scientific_notation(s): # 拆分尾数和指数 mantissa_part, exp_part = s.split('E') original_mantissa = float(mantissa_part) original_exp = int(exp_part) # 计算调整后的尾数:原尾数 × 10^(原指数 + 3) adjusted_mantissa = original_mantissa * (10 ** (original_exp + 3)) # 生成指数为-3的格式化字符串 formatted_float = f"{adjusted_mantissa}E-3" # 可选:若尾数为整数,去掉小数部分的.0 if adjusted_mantissa.is_integer(): adjusted_mantissa = int(adjusted_mantissa) formatted_float = f"{adjusted_mantissa}E-3" return adjusted_mantissa, formatted_float # 测试示例 samples = ["2.89E-6", "9.87E-1", "4.18E-4"] for sample in samples: mantissa, formatted = process_scientific_notation(sample) print(f"输入: {sample}") print(f"转换后浮点数: {formatted}") print(f"提取的尾数: {mantissa}\n")
运行结果
- 输入
2.89E-6→ 转换后浮点数0.00289E-3,提取尾数0.00289 - 输入
9.87E-1→ 转换后浮点数987E-3,提取尾数987 - 输入
4.18E-4→ 转换后浮点数0.418E-3,提取尾数0.418
内容的提问来源于stack exchange,提问作者Sinha
相关产品推荐
相关产品推荐

