No financial details of the deal were disclosed, but British media reported that City had paid 37 million pounds ($48.96 million) for the 20-year-old, who is the club's fifth signing of the close season.
Sane scored eight goals and made six assists for Schalke last season as the club finished fifth in the Bundesliga standings.
"I feel really good, I'm happy to be here and happy that it has all worked out. Now I can settle here in Manchester and play for City," Sane told the club's website. (www.mancity.com)
IMAGE: Manchester City tweets picture of Leroy Sane.
Conte unsure of Costa's future at Chelsea
Argentina pick Bauza as coach
Meet Gaurika Singh, the youngest Olympian at Rio 2016
Hockey India chief slams IOA on 'unfurnished apartments' in Rio
India will win 1 gold. How true are these Rio predictions?