Skip to main content

How to Convert Time to Decimal Hours: Complete Guide

The short version: divide minutes by 60 and add to hours. The long version — which is what you came here for — covers four practical methods, the math behind each, payroll-specific rounding, and the edge cases that trip up spreadsheets.

Quick answer. To convert HH:MM to decimal hours: decimal = hours + (minutes ÷ 60). Example: 7:45 = 7 + 45/60 = 7.75. To go back: integer part is hours, decimal part × 60 is minutes. For non-quarter-hour values, use the calculator to avoid arithmetic errors.

Why this conversion matters

Every payroll system in the United States stores hours worked as a decimal number. Multiplying HH:MM by an hourly rate gives nonsense; multiplying decimal hours gives money. So when you punch in at 09:07 and out at 17:53, that 8:46 on your time clock has to become 8.77 (or whatever the rounding rule produces) before it can be paid.

Same goes for invoicing: if you bill $75/hour and worked 3:30, you charge 3.5 × $75 = $262.50. Mishandling that conversion costs real money — either to you or your client.

Beyond payroll, decimal hours appear in:

  • Project budgets ("allocate 4.5 hours")
  • Time-tracking app exports (Toggl, Clockify, Harvest all use decimal)
  • Travel-time logs (DOT logs for truck drivers, FAA for pilots)
  • Construction job costing (decimal makes labor-hour-cost rollups easy)
  • Anything that gets multiplied by a per-hour rate

The math

The full conversion formula:

decimal = h + (m ÷ 60) + (s ÷ 3600)

Where h is hours, m is minutes, and s is seconds (optional, rarely needed in payroll). The reverse:

h = floor(decimal)
m = round((decimal - h) × 60)

Why ÷ 60? Because there are 60 minutes in an hour. Each minute is therefore 1/60 of an hour, or 0.01666… in decimal. Multiplying that fraction by your minute count gives you the partial-hour value to add to the integer hour count.

For more on why some conversions are clean (15 min = 0.25) and others repeat (20 min = 0.333…), see our deeper write-up: The Time-to-Decimal Formula Explained.

Method 1: The mental math

Memorize four anchor values: 0.25, 0.50, 0.75, 1.00. They map to 15, 30, 45, and 60 minutes respectively. For everything else, eyeball:

  • 5 min ≈ 0.08 (just over a tenth of 0.75)
  • 10 min ≈ 0.17 (about a sixth of an hour)
  • 20 min ≈ 0.33 (a third)
  • 40 min ≈ 0.67 (two thirds)

For DOL 7-minute rounding (very common), the cutoffs are at minutes 7, 22, 37, 52. Anything ≤ the cutoff rounds down to the previous quarter; anything > rounds up. Memorizing those numbers lets you apply payroll rounding in your head — useful for spot-checking paystubs.

Advertisement

Method 2: The online calculator

Use our bidirectional calculator. Type 7:45, get 7.75. It handles HH:MM, HH:MM:SS, hours-and-minutes split, clock-in/clock-out (with optional break deduction), and decimal-to-time reverse. The calculator also supports seven rounding modes — including the DOL 7-minute rule and the "exact" mode for engineering use.

Method 3: Excel / Google Sheets

Excel stores time as a fraction of a day. 1:00 is 0.041667 in Excel’s internal representation (1/24). To get decimal hours, multiply by 24:

=A1*24

Format the result as Number (not Time), with 2–4 decimal places. If A1 contains 7:45, the formula yields 7.75.

For the reverse direction (decimal to time):

=A1/24
// then format the cell as [h]:mm

The [h] in brackets allows the value to exceed 24 hours (useful for weekly totals). Without brackets, Excel rolls over.

One Excel gotcha

Sometimes =A1*24 returns 7.7499999999 instead of 7.75. That’s floating-point noise. Wrap with ROUND:

=ROUND(A1*24, 4)

Method 4: Python (or any scripting language)

For batch processing — converting an exported timesheet of 200 rows, for example:

def time_to_decimal(s):
    """Convert 'HH:MM' or 'HH:MM:SS' to decimal hours."""
    parts = s.split(':')
    h = int(parts[0])
    m = int(parts[1]) if len(parts) > 1 else 0
    sec = int(parts[2]) if len(parts) > 2 else 0
    return h + m/60 + sec/3600

print(time_to_decimal('7:45'))   # 7.75
print(time_to_decimal('8:30:15')) # 8.504166...

For DOL 7-minute rounding:

def round_dol7(decimal_hours):
    """Round to nearest quarter-hour using FLSA 7-minute rule."""
    h = int(decimal_hours)
    extra_min = round((decimal_hours - h) * 60)
    rem = extra_min % 15
    base = extra_min - rem
    if rem <= 7:
        return h + base / 60
    return h + (base + 15) / 60

Worked examples by use case

Daily timesheet

Friday: clock-in 08:53, clock-out 17:08, lunch 30 min.

  1. Elapsed: 17:08 − 08:53 = 8 h 15 m
  2. Less lunch: 8 h 15 m − 30 m = 7 h 45 m
  3. Decimal: 7 + 45/60 = 7.75

Freelance invoice

Project hours logged: 2:15, 1:40, 3:55, 0:50 = ?

  1. Convert each: 2.25, 1.667, 3.917, 0.833
  2. Sum: 8.667 hours
  3. At $85/hr: 8.667 × $85 = $736.70

Project allocation

Manager says "spend 4.5 hours on documentation today." How long is that?

  1. Integer part: 4 hours
  2. Decimal part: 0.5 × 60 = 30 minutes
  3. Block 4 h 30 m on the calendar.

Common mistakes

Treating the colon as a decimal point

Typing 7:30 into a payroll cell doesn’t mean 7.30. The 30 is minutes, not hundredths. 7:30 = 7.5, not 7.30. The 12-minute gap between these two values, multiplied by an hourly rate over a year, becomes a meaningful payroll error.

Forgetting to deduct breaks

A 9-to-5 shift looks like 8 hours. With an unpaid 30-minute lunch, it’s 7.5 hours. Always deduct unpaid breaks before converting.

Mixing rounding rules across days

If you round Mon to the nearest quarter and Tue to the nearest tenth, your weekly total will be subtly inconsistent and won’t match audit expectations. Pick one rule and apply it to every row.

Negative time durations

If clock-out < clock-in (e.g., a shift that crosses midnight), naive subtraction returns a negative number. Add 24 hours to the clock-out before subtracting. Our timesheet calculator handles this automatically.

Advertisement

Edge cases

Times exceeding 24 hours

Weekly totals like 47:30 (forty-seven hours, thirty minutes) convert exactly the same way: 47 + 30/60 = 47.5 decimal. There’s no special handling needed — just don’t let your spreadsheet auto-format the result as a clock time, which would roll over to 23:30.

Sub-minute precision

Most payroll doesn’t care about seconds, but if you’re tracking tight engineering or aviation logs, the formula extends: decimal = h + m/60 + s/3600. Our calculator’s HH:MM:SS mode handles this directly.

The 0.0833 puzzle

Why does 5 minutes equal 0.0833 (and not a clean number)? Because 5/60 simplifies to 1/12, and 1/12 doesn’t terminate in base 10. The exact value is 0.08333… repeating. Most payroll systems truncate to 2 or 4 decimal places. Why this happens.

Tools and references