输入一个实数,分别输出其整数部分和小数部分。 【问题描述】输入一个实数,分别输出其整数部分和小数部分。
时间: 2025-03-23 22:08:01 浏览: 79
### 实现分离浮点数的整数部分和小数部分
以下是基于 Python 的解决方案,利用 `math` 模块中的 `modf()` 方法来完成这一任务:
```python
import math
def separate_float(number):
fraction, integer = math.modf(number) # 使用 modf 函数分离整数和小数部分[^2]
integer_part = int(integer) # 将整数部分转换为整型
fractional_part = round(fraction * 1000) # 处理小数部分并保留三位有效数字[^1]
return integer_part, fractional_part
# 测试样例
number = float(input("请输入一个浮点数(小数点后有三位数):"))
integer_part, fractional_part = separate_float(number)
print(f"整数部分:{integer_part}")
print(f"小数部分:{fractional_part}") # 输出小数部分时去掉小数点前后的 '0.'
```
#### 解析
上述代码通过调用 `math.modf()` 来分解输入的浮点数值。此函数会返回一个小数部分和一个整数部分组成的元组。随后,将整数部分强制转换成整型数据类型以便于显示;对于小数部分,则乘以 1000 并四舍五入到最近的整数,从而得到原始浮点数中小数点后三位的有效值。
另外一种不依赖外部库的方法如下所示:
```python
def separate_float_no_math(number):
str_num = "{:.3f}".format(number) # 格式化字符串确保精确度至千分位[^3]
parts = str_num.split('.') # 利用 split 分割字符串获得两部分
integer_part = int(parts[0]) # 字符串转整型获取整数部分
fractional_part = int(parts[1]) # 同样处理小数部分
return integer_part, fractional_part
# 测试样例
number = float(input("请输入一个浮点数(小数点后有三位数):"))
integer_part, fractional_part = separate_float_no_math(number)
print(f"整数部分:{integer_part}")
print(f"小数部分:{fractional_part}")
```
这种方法无需导入额外模块,而是直接操作字符串形式的数据来达到相同效果。
阅读全文
相关推荐

















