#!/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)