We prove that for two elements x, y in a Hilbert C * -module V over a C * -algebra A the C * -valued triangle equality |x + y| = |x| + |y| holds if and only if x, y = |x| |y|. In addition, if A has a unit e, then for every x, y ∈ V and every ε > 0 there are contractions u, v ∈ A such that |x + y| u|x|u * + v|y|v * + εe.