Use float instead of int to have better accuracy

Bug:16552376
Change-Id: I92f5bb993df788f4c503052629cb06467f5bfaad
diff --git a/src/com/android/datetimepicker/date/MonthView.java b/src/com/android/datetimepicker/date/MonthView.java
index 0976265..e4d1f09 100644
--- a/src/com/android/datetimepicker/date/MonthView.java
+++ b/src/com/android/datetimepicker/date/MonthView.java
@@ -478,17 +478,17 @@
     protected void drawMonthNums(Canvas canvas) {
         int y = (((mRowHeight + MINI_DAY_NUMBER_TEXT_SIZE) / 2) - DAY_SEPARATOR_WIDTH)
                 + getMonthHeaderSize();
-        int dayWidthHalf = (mWidth - mEdgePadding * 2) / (mNumDays * 2);
+        final float dayWidthHalf = (mWidth - mEdgePadding * 2) / (mNumDays * 2.0f);
         int j = findDayOffset();
         for (int dayNumber = 1; dayNumber <= mNumCells; dayNumber++) {
-            int x = (2 * j + 1) * dayWidthHalf + mEdgePadding;
+            final int x = (int)((2 * j + 1) * dayWidthHalf + mEdgePadding);
 
             int yRelativeToDay = (mRowHeight + MINI_DAY_NUMBER_TEXT_SIZE) / 2 - DAY_SEPARATOR_WIDTH;
 
-            int startX = x - dayWidthHalf;
-            int stopX = x + dayWidthHalf;
-            int startY = y - yRelativeToDay;
-            int stopY = startY + mRowHeight;
+            final int startX = (int)(x - dayWidthHalf);
+            final int stopX = (int)(x + dayWidthHalf);
+            final int startY = (int)(y - yRelativeToDay);
+            final int stopY = (int)(startY + mRowHeight);
 
             drawMonthDay(canvas, mYear, mMonth, dayNumber, x, y, startX, stopX, startY, stopY);