Handle string capacity

Change-Id: I64b34974fd1910be49d9208764f0ad9466c59f97
Related-PROD: PROD-25085 (PROD:25085)
diff --git a/openstack/blockstorage/extensions/schedulerstats/results.go b/openstack/blockstorage/extensions/schedulerstats/results.go
index e176c61..95eaaed 100644
--- a/openstack/blockstorage/extensions/schedulerstats/results.go
+++ b/openstack/blockstorage/extensions/schedulerstats/results.go
@@ -60,12 +60,19 @@
 	// value, "unknown", or "infinite"
 	parseCapacity := func(capacity interface{}) float64 {
 		if capacity != nil {
-			switch capacity.(type) {
+			switch t := capacity.(type) {
 			case float64:
-				return capacity.(float64)
+				return t
 			case string:
-				if capacity.(string) == "infinite" {
+				switch t {
+				case "infinite":
 					return math.Inf(1)
+				default:
+					c, err := strconv.ParseFloat(t, 64)
+					if err != nil {
+						return 0.0
+					}
+					return c
 				}
 			}
 		}