Imagine a situation where you have a primative type:
int distanceInKm;
This is in many, many places throughout your code.
One day Mr Client comes to you and says, "We'd like everything displayed in miles now, please."
You now have to change everywhere where distanceInKm is used.
Now imagine an alternative situation where you have you own type:
class Distance
{
private int _distanceInKm;
public string DescriptionOfDistance()
{
return ...;
}
}
Now you only need to change one place to make everything display in miles.
As @DanielFisherlennybacon has mentioned in the comments, you need to be pragmatic about when to apply any 'rules' of programming. In this specific case, it is worth noting that Object Calisthenics is an exercise to stretch your programming muscles. Marathon runners do sprints in training to improve their basic speed; it doesn't mean they have to sprint for the entire race.