py23 from __future__ import division and adjust divisions
diff --git a/Lib/fontTools/misc/arrayTools.py b/Lib/fontTools/misc/arrayTools.py
index cab3066..acbb02f 100644
--- a/Lib/fontTools/misc/arrayTools.py
+++ b/Lib/fontTools/misc/arrayTools.py
@@ -4,7 +4,7 @@
 #
 
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 import math
 
@@ -161,9 +161,9 @@
     >>> unionRect((0, 10, 20, 30), (0, 40, 20, 50))
     (0, 10, 20, 50)
     >>> rectCenter((0, 0, 100, 200))
-    (50, 100)
+    (50.0, 100.0)
     >>> rectCenter((0, 0, 100, 199.0))
-    (50, 99.5)
+    (50.0, 99.5)
     >>> intRect((0.9, 2.9, 3.1, 4.1))
     (0, 2, 4, 5)
     """
diff --git a/Lib/fontTools/misc/bezierTools.py b/Lib/fontTools/misc/bezierTools.py
index a87d4ae..179ab3c 100644
--- a/Lib/fontTools/misc/bezierTools.py
+++ b/Lib/fontTools/misc/bezierTools.py
@@ -1,7 +1,7 @@
 """fontTools.misc.bezierTools.py -- tools for working with bezier path segments.
 """
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 
 __all__ = [
@@ -100,7 +100,7 @@
     if ax == 0:
         return [(pt1, pt2)]
         
-    t = float(where - (bx, by)[isHorizontal]) / ax
+    t = (where - (bx, by)[isHorizontal]) / ax
     if 0 <= t < 1:
         midPt = ax * t + bx, ay * t + by
         return [(pt1, midPt), (midPt, pt2)]
diff --git a/Lib/fontTools/misc/eexec.py b/Lib/fontTools/misc/eexec.py
index dc36770..84f9705 100644
--- a/Lib/fontTools/misc/eexec.py
+++ b/Lib/fontTools/misc/eexec.py
@@ -2,7 +2,7 @@
 charstring encryption algorithm as used by PostScript Type 1 fonts.
 """
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 
 # Warning: Although a Python implementation is provided here, 
diff --git a/Lib/fontTools/misc/homeResFile.py b/Lib/fontTools/misc/homeResFile.py
index 73996cd..ae4a0d2 100644
--- a/Lib/fontTools/misc/homeResFile.py
+++ b/Lib/fontTools/misc/homeResFile.py
@@ -1,6 +1,6 @@
 """Mac-only module to find the home file of a resource."""
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 from fontTools.misc import sstruct
 import array
diff --git a/Lib/fontTools/misc/macCreatorType.py b/Lib/fontTools/misc/macCreatorType.py
index 5681461..ab5587a 100644
--- a/Lib/fontTools/misc/macCreatorType.py
+++ b/Lib/fontTools/misc/macCreatorType.py
@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 import sys
 try:
diff --git a/Lib/fontTools/misc/psCharStrings.py b/Lib/fontTools/misc/psCharStrings.py
index fa1250c..b86308c 100644
--- a/Lib/fontTools/misc/psCharStrings.py
+++ b/Lib/fontTools/misc/psCharStrings.py
@@ -2,7 +2,7 @@
 CFF dictionary data and Type1/Type2 CharStrings.
 """
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 import struct
 
@@ -61,7 +61,7 @@
 	def read_fixed1616(self, b0, data, index):
 		bin = data[index] + data[index+1] + data[index+2] + data[index+3]
 		value, = struct.unpack(">l", bin)
-		return value / 65536.0, index+4
+		return value / 65536, index+4
 	
 	def read_realNumber(self, b0, data, index):
 		number = ''
@@ -579,7 +579,7 @@
 	def op_hintmask(self, index):
 		if not self.hintMaskBytes:
 			self.countHints()
-			self.hintMaskBytes = (self.hintCount + 7) / 8
+			self.hintMaskBytes = (self.hintCount + 7) // 8
 		hintMaskBytes, index = self.callingStack[-1].getBytes(index, self.hintMaskBytes)
 		return hintMaskBytes, index
 	
@@ -587,7 +587,7 @@
 	
 	def countHints(self):
 		args = self.popall()
-		self.hintCount = self.hintCount + len(args) / 2
+		self.hintCount = self.hintCount + len(args) // 2
 
 	# misc
 	def op_and(self, index):
@@ -695,7 +695,7 @@
 	
 	def countHints(self):
 		args = self.popallWidth()
-		self.hintCount = self.hintCount + len(args) / 2
+		self.hintCount = self.hintCount + len(args) // 2
 	
 	#
 	# hint operators
@@ -882,8 +882,8 @@
 	def op_div(self, index):
 		num2 = self.pop()
 		num1 = self.pop()
-		d1 = num1/num2
-		d2 = float(num1)/num2
+		d1 = num1//num2
+		d2 = num1/num2
 		if d1 == d2:
 			self.push(d1)
 		else:
diff --git a/Lib/fontTools/misc/py23.py b/Lib/fontTools/misc/py23.py
index 059faac..2797505 100644
--- a/Lib/fontTools/misc/py23.py
+++ b/Lib/fontTools/misc/py23.py
@@ -1,6 +1,6 @@
 """Python 2/3 compat layer."""
 
-from __future__ import print_function
+from __future__ import print_function, division
 
 try:
 	basestring
diff --git a/Lib/fontTools/misc/sstruct.py b/Lib/fontTools/misc/sstruct.py
index 3d976ee..6d4d9c2 100644
--- a/Lib/fontTools/misc/sstruct.py
+++ b/Lib/fontTools/misc/sstruct.py
@@ -46,7 +46,7 @@
 	it returns the size of the data in bytes.
 """
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 import struct
 import re
diff --git a/Lib/fontTools/misc/textTools.py b/Lib/fontTools/misc/textTools.py
index 8e41d18..6e3418b 100644
--- a/Lib/fontTools/misc/textTools.py
+++ b/Lib/fontTools/misc/textTools.py
@@ -1,7 +1,7 @@
 """fontTools.misc.textTools.py -- miscelaneous routines."""
 
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 import string
 
diff --git a/Lib/fontTools/misc/transform.py b/Lib/fontTools/misc/transform.py
index be706dd..d706c79 100644
--- a/Lib/fontTools/misc/transform.py
+++ b/Lib/fontTools/misc/transform.py
@@ -45,7 +45,7 @@
 	>>>
 """
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 
 __all__ = ["Transform", "Identity", "Offset", "Scale"]
@@ -236,7 +236,7 @@
 		if self.__affine == (1, 0, 0, 1, 0, 0):
 			return self
 		xx, xy, yx, yy, dx, dy = self.__affine
-		det = float(xx*yy - yx*xy)
+		det = xx*yy - yx*xy
 		xx, xy, yx, yy = yy/det, -xy/det, -yx/det, xx/det
 		dx, dy = -xx*dx - yx*dy, -xy*dx - yy*dy
 		return self.__class__(xx, xy, yx, yy, dx, dy)
diff --git a/Lib/fontTools/misc/xmlReader.py b/Lib/fontTools/misc/xmlReader.py
index c1a7667..2496921 100644
--- a/Lib/fontTools/misc/xmlReader.py
+++ b/Lib/fontTools/misc/xmlReader.py
@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 from fontTools import ttLib
 from fontTools.misc.textTools import safeEval
@@ -25,7 +25,7 @@
 	def read(self):
 		if self.progress:
 			import stat
-			self.progress.set(0, os.stat(fileName)[stat.ST_SIZE] / 100 or 1)
+			self.progress.set(0, os.stat(fileName)[stat.ST_SIZE] // 100 or 1)
 		file = open(self.fileName)
 		self._parseFile(file)
 		file.close()
@@ -46,7 +46,7 @@
 				break
 			pos = pos + len(chunk)
 			if self.progress:
-				self.progress.set(pos / 100)
+				self.progress.set(pos // 100)
 			parser.Parse(chunk, 0)
 	
 	def _startElementHandler(self, name, attrs):
diff --git a/Lib/fontTools/misc/xmlWriter.py b/Lib/fontTools/misc/xmlWriter.py
index e574983..9679c32 100644
--- a/Lib/fontTools/misc/xmlWriter.py
+++ b/Lib/fontTools/misc/xmlWriter.py
@@ -1,6 +1,6 @@
 """xmlWriter.py -- Simple XML authoring class"""
 
-from __future__ import print_function
+from __future__ import print_function, division
 from fontTools.misc.py23 import *
 import string
 import struct