Astle announced his retirement on Friday in Perth, Australia, where the New Zealand side is due to play in a tri-series limited overs match on Sunday.
"I so desperately wanted to go to my fourth World Cup, but deep down inside I knew that I was lacking motivation and the enjoyment levels were just not there," Astle said in a statement.
The 35-year-old said he had been struggling for motivation since last year, but had "fudged" his feelings because he wanted to go to the World Cup in the Caribbean in March.
"Once I had made the decision that I would not be going to the World Cup, for the sake of the team, I needed to go as soon as possible to make way for another player."
Astle who made his Test debut in 1996, enjoys a reputation for being a hard hitting batsman.
He holds the record for the fastest Test double-century, 153 balls against England in Christchurch in 2002.
He played 81 Tests, scoring 4,702 runs, including 11 centuries and 24 half centuries, at an average of 37.
In his 223 one day internationals he scored 7,090 runs, with 16 centuries and 41 half centuries, and an average of 35.
As a part-time medium-pace bowler Astle took 51 Test and 99 one day international wickets.
The player said he was still undecided about his future in domestic cricket, where he plays for Canterbury.
Coach John Bracewell said the decision came out of the blue, describing Astle as a "great player and a great team player."
"It was a bit of a shock to all of us and quite disruptive to our plans but I respect his decision," he said referring to New Zealand's build-up for the World Cup starting in March.
"Timing's never great this close to a big tournament and Nathan was going to be a serious part of that because of his experience and the younger players he was assisting to mentor."
"Nath was a very uncomplicated, naturally aggressive player who was just great to watch," said captain Fleming, paying tribute to his team-mate."
"He was also a great sounding board for me as a captain because of his calmness and consistency. He will be missed."
Replacement batsman Lou Vincent was expected to join the New Zealand team in Perth Friday.