|

楼主 |
发表于 2023-1-31 11:13:05
|
显示全部楼层
更新后的代码:- # coding:utf-8
- class CheckNumber:
- """需要输入两个参数,一个浮点数,一个位数。检查浮点数小数位,输入要保留几位小数,
- 小数位大于要保留的位数,进行四舍五入,小于要保留位数,小数后面加0,默认不保留小数位。"""
- def __init__(self, nums=0.0, decimal_digits=0):
- self.nums = nums
- self.decimal_digits = decimal_digits
- @staticmethod
- def round_number(nums, decimal_digits=0):
- # 以小数点为分隔符,将浮点数整数部分和小数部分分开
- nums_list = str(nums).split('.')
- temp_nums = nums_list[1]
- # 只保留整数
- if decimal_digits == 0:
- if int(temp_nums[0]) < 5:
- nums = nums_list[0]
- return nums
- else:
- fist_nums = nums_list[0]
- # 判断是否为负数
- if fist_nums[0] == '-':
- fist_nums = '-' + str(abs(int(fist_nums)) + 1)
- return fist_nums
- else:
- fist_nums = int(fist_nums) + 1
- return fist_nums
- # 检查保留几位小数
- if decimal_digits > 0:
- if len(temp_nums) > decimal_digits:
- temp_nums_01 = temp_nums[0:decimal_digits]
- if int(temp_nums[decimal_digits]) < 5:
- nums = nums_list[0] + '.' + temp_nums_01
- return nums
- else:
- temp_nums_02 = str(int(temp_nums_01) + 1)
- nums = nums_list[0] + '.' + temp_nums_02
- return nums
- else:
- flag = decimal_digits - len(temp_nums)
- nums_01 = ''
- while flag:
- nums_01 = nums_01 + '0'
- flag -= 1
- nums = str(nums) + nums_01
- return nums
复制代码 |
|