|
|
@@ -0,0 +1,52 @@ |
|
|
|
#!/usr/bin/env python3 |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
""" |
|
|
|
Created on Wed Oct 7 14:43:36 2020 |
|
|
|
|
|
|
|
@author: ljia |
|
|
|
""" |
|
|
|
|
|
|
|
def rounder(x, decimals): |
|
|
|
"""Round, where 5 is rounded up. |
|
|
|
|
|
|
|
Parameters |
|
|
|
---------- |
|
|
|
x : float |
|
|
|
The number to be rounded. |
|
|
|
decimals : int |
|
|
|
Decimals to which ``x'' is rounded. |
|
|
|
|
|
|
|
Returns |
|
|
|
------- |
|
|
|
string |
|
|
|
The rounded number. |
|
|
|
""" |
|
|
|
x_strs = str(x).split('.') |
|
|
|
if len(x_strs) == 2: |
|
|
|
before = x_strs[0] |
|
|
|
after = x_strs[1] |
|
|
|
if len(after) > decimals: |
|
|
|
if int(after[decimals]) >= 5: |
|
|
|
after0s = '' |
|
|
|
for c in after: |
|
|
|
if c == '0': |
|
|
|
after0s += '0' |
|
|
|
elif c != '0': |
|
|
|
break |
|
|
|
if len(after0s) == decimals: |
|
|
|
after0s = after0s[:-1] |
|
|
|
after = after0s + str(int(after[0:decimals]) + 1)[-decimals:] |
|
|
|
else: |
|
|
|
after = after[0:decimals] |
|
|
|
elif len(after) < decimals: |
|
|
|
after += '0' * (decimals - len(after)) |
|
|
|
return before + '.' + after |
|
|
|
|
|
|
|
elif len(x_strs) == 1: |
|
|
|
return x_strs[0] |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
x = 1.0075333616 |
|
|
|
y = rounder(x, 2) |
|
|
|
print(y) |