ESPN.com's Jayson Stark first reported the deal, which guarantees Floyd $750,000 plus bonuses.
Floyd, 36, spent last season with Tampa Bay, where he primarily served as a designated hitter. He batted .268, with 11 homers and a .443 slugging percentage, in 246 at-bats.
Floyd goes from playing in the World Series with Tampa Bay to a team that lost 99 games and finished last in the NL West. Tampa Bay declined a $3 million option on Floyd, instead opting for a $250,000 buyout.
The slugger was on the postseason roster until a right shoulder injury sidelined him for the final two games of the World Series loss to Philadelphia.
Meanwhile, Floyd said he was "pretty stoked" about joining the Padres.
"I love National League-style baseball; I've been doing it my whole career," he said. "I got the chance to play in the American League last year and it was a great opportunity, a great situation, but games are way too long, and getting back to National League style of play is a good fit for me."
To clear a spot on the 40-man roster, the Padres designated right-handed pitcher Matt Bush for assignment. The Padres have 10 days to trade, release or assign Bush outright to the minor leagues.
The Padres have 10 days to trade Bush or release him. They can't send him outright to the minors because they added him to the 40-man roster to protect him from going to another team in the winter meeting draft (Rule 5) in December, general manager Kevin Towers said.
"We knew this was a possibility," Towers said. "Sometimes you have to make tough decisions. Matt ended up being kind of the 40th guy. We just felt he was the right guy to designate rather than 39 other guys that we felt like we valued more on our roster."
Jayson Stark is a senior baseball writer for ESPN.com. Information from The Associated Press was used in this report.