Is this behavior inconsistent or am I missing something?

Code:
. forv x = 0(0.05)1{
  2.         di `x'
  3. }
0
.05
.1
.15
.2
.25
.3
.35
.4
.45
.5
.55
.6
.65
.7
.75
.8
.85
.9
.95

. forv x = 0(0.5)1{
  2.         di `x'
  3. }
0
.5
1
Why does 0(0.05)1 terminate at 0.95 whereas 0(0.5)1 terminates at 1?