The cost to paint a deck in Saint Charles ranges from $800 to $1,600 or about $3 to $5 per square foot. Painting a 300 square foot deck is $1,200 on average, but many factors can increase the price. The labor rate, material condition, and paint quality, for example, can all drive up the total.