 	
 	var scale: Double = 60.0
 	
-	var scaleRounded: Double {
-		let result = floor(scale + 0.5)
+	var lengthOfFullItem: Double {
+		let result = ceil(scale)
 		if result < 0.1 {
 			return 0.1
 		}
 		return result
+	}
+	
+	var lengthOfAllFullItems: Double {
+		return Double(numberOfItems) * lengthOfFullItem
+	}
+	var lengthOfPartialItemBefore: Double {
+		return ceil(lengthOfFullItem * sizeOfPartialItemAfter)
+	}
+	var lengthOfPartialItemAfter: Double {
+		return ceil(lengthOfFullItem * sizeOfPartialItemAfter)
 	}
 	
 	static let height: CGFloat = 130

		if row >= model.numberOfItems {
			if model.hasPartialItemAfter {
				return CGSize(
					width: CGFloat(model.scaleRounded * model.sizeOfPartialItemAfter),
					height: PrecisionSlider_InnerModel.height
				)
			}
		}
		return CGSize(
			width: CGFloat(model.scaleRounded),
			height: PrecisionSlider_InnerModel.height
		)
	}

	}()
	
	var value: Double? {
		let scale = model.lengthOfFullItem
		if scale < 0.1 {
			return nil
		}
