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.