Numerical Input breaks with large numbers with many decimal places

Hi all,

I have observed that certain numbers break the Input Dash Core Component in “number” mode. I assume specifically large numbers with many decimal places cause the problem.

See the below simple example:

import dash
import dash_core_components as dcc
import dash_html_components as html


external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"]

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

min_ = 1628080688.795918
max_ = 1628080989.0949087
# works
# min_ = 1628080688.79
# max_ = 1628080989.09
# also works
# min_ = 98.795918
# max_ = 989.0949087

app.layout = html.Div(
    [
        dcc.Input(id="start_value", type="number", min=min_, max=max_, value=min_, step='any'),
        dcc.Input(id="end_value", type="number", min=min_, max=max_, value=max_, step='any'),
    ]
)


if __name__ == "__main__":
     app.run_server(debug=True)

If this is run, one can then only increase the left Input field and never decrease it, and the right Input is marked as invalid (with a red border) on page load:

Annotation 2021-08-07 185021

Maybe this has to do with the internal precision used to store the min/mix values? Does anyone know a solution to this problem? Or at least the exact conditions, such that I could change the numbers to a valid range.

Best regards,
Nico