The only way I know how to do something like this is to do something like generate the plot first, then add a new x-scale using information taken from the pre-built but not displayed plot.
library(tidyverse)
set.seed(123)
n <- 100
df <- data.frame(x = runif(n, 0, 2)^2)
ggp <- ggplot(df, aes(x = x)) +
geom_histogram(bins = 17, center = 0, color = "black")
ggp

ggp + scale_x_continuous(breaks = round(ggplot_build(ggp)$data[[1]]$x, 2))

Created on 2020-09-05 by the reprex package (v0.3.0)