As an option Interpretation[{x = RandomReal[]}, Button[ToString@SetPrecision[x, 6], x = RandomReal[]], N[x, 6]] Or Interpretation[{x = RandomReal[]}, Button[N@Round[x, 1*^-6], x = RandomReal[]], N@Round[x, 1*^-6]] As far as I understand, `N` really doesn't change anything about a machine number, not even its precision, it does most of the work on exact inputs. So for machine numbers you need to use `SetPrecision` at the very least.