DMS to Decimal Degrees: Conversion Formula for GPS & Surveying Coordinates
Converting DMS to decimal degrees is something you'll do constantly if you work with GPS data, survey plats, or topographic maps. The notation 40°26′46″N looks elegant on a compass rose, but your mapping software, GeoJSON file, or database column wants a clean number like 40.4461. The math is straightforward once you see the pattern — and this guide walks through the formula, real examples, precision tradeoffs, and the gotchas that trip people up.

What Are DMS Coordinates?
DMS stands for degrees, minutes, seconds— a way of writing angles that dates back to Babylonian astronomers around 300 BC. They chose base-60 (sexagesimal) because 60 divides evenly by 2, 3, 4, 5, 6, 10, 12, 15, 20, and 30, making mental arithmetic with fractions far easier than base-10. We inherited this system for both timekeeping (60 minutes in an hour) and angular measurement.
One degree (°) splits into 60 arc-minutes (′), and each arc-minute splits into 60 arc-seconds (″). So a full degree contains 3,600 arc-seconds. When you see a coordinate like 48°51′30″N, 2°17′40″E, that's the Eiffel Tower — latitude first, longitude second, with compass letters telling you which hemisphere.
The DMS to Decimal Degrees Formula
The formula itself is one line:
Decimal Degrees = D + (M ÷ 60) + (S ÷ 3600)
That's it. You're converting minutes and seconds back into fractional degrees. Since there are 60 minutes per degree, dividing minutes by 60 gives you the decimal fraction. Same logic for seconds: 60 seconds per minute times 60 minutes per degree = 3,600 seconds per degree.
After computing the absolute value, apply the sign: North and East are positive. South and West are negative. This convention comes from the Cartesian coordinate system where the equator is the x-axis and the Prime Meridian is the y-axis.
Worked Examples with Real GPS Coordinates
Example 1 — Statue of Liberty (40°41′21″N, 74°2′40″W):
- Latitude: 40 + (41 ÷ 60) + (21 ÷ 3600) = 40 + 0.6833 + 0.005833 = 40.6892° (positive, because N)
- Longitude: 74 + (2 ÷ 60) + (40 ÷ 3600) = 74 + 0.0333 + 0.01111 = −74.0444° (negative, because W)
Example 2 — Sydney Opera House (33°51′25″S, 151°12′55″E):
- Latitude: 33 + (51 ÷ 60) + (25 ÷ 3600) = 33 + 0.85 + 0.006944 = −33.8569° (negative, because S)
- Longitude: 151 + (12 ÷ 60) + (55 ÷ 3600) = 151 + 0.2 + 0.01528 = 151.2153° (positive, because E)
Paste those decimal values into Google Maps and you'll land right on the landmark. That's how you verify your conversion — always spot-check against a known location.
How Precise Are DMS Coordinates?
Precision depends on how many decimal places you carry in the seconds field. Here's what each level of detail actually means on the ground at the equator:
| DMS Precision | DD Equivalent | Ground Distance |
|---|---|---|
| 1° (degree) | 1.0° | ~111 km (69 mi) |
| 1′ (minute) | 0.01667° | ~1.85 km (1.15 mi) |
| 1″ (second) | 0.000278° | ~30.87 m (101 ft) |
| 0.1″ | 0.0000278° | ~3.09 m (10 ft) |
| 0.01″ | 0.00000278° | ~0.31 m (1 ft) |
Consumer GPS receivers (phones, car nav) are accurate to about 3–5 meters under open sky. So for most applications, whole arc-seconds give you more precision than your GPS can justify. Surveyors, though, routinely work to 0.01″ because their equipment (RTK GPS, total stations) can resolve centimeters.
Where Each Format Gets Used
You'd think the world would have settled on one coordinate format by now. It hasn't. Different industries cling to different conventions for legitimate reasons:
- DMS— Aviation (ICAO flight plans require DMS), nautical charts, land deed descriptions, topographic maps from USGS and Ordnance Survey. Pilots read DMS aloud over radio because it's unambiguous with three distinct numbers.
- Decimal degrees— Google Maps, OpenStreetMap, every GeoJSON file, most databases (PostGIS stores coordinates as float8 pairs), and virtually all web APIs. If you're writing code, this is your default. Need to convert the result to radians for trigonometric calculations? Our degrees to radians converter handles that next step.
- Degrees decimal-minutes (DDM)— Marine GPS units and geocaching traditionally use this hybrid format (e.g., 40°26.767′N). It splits the difference between DMS readability and decimal simplicity.
Common Mistakes When Converting DMS
After handling thousands of coordinate conversions, here are the errors that come up again and again:
- Forgetting the sign for S and W.This is the #1 mistake. You calculate 33.8569° for Sydney but forget the negative sign — suddenly you're in the Sahara Desert at 33.8569°N instead of Australia. Always apply the hemisphere sign after computing the absolute decimal value.
- Dividing seconds by 60 instead of 3600.If you divide 46 seconds by 60 you get 0.7667 — but seconds are a fraction of a degree, not a minute. The correct divisor is 3600 (giving 0.01278). This error inflates your result by a factor of 60, placing you miles away.
- Swapping latitude and longitude.Latitude is always first in DMS notation and ranges 0–90°. Longitude ranges 0–180°. If you see a degree value over 90, it mustbe longitude. GeoJSON, confusingly, reverses this order to [longitude, latitude] — a trap that catches even experienced developers.
- Mixing up the symbols.The degree symbol (°) is Unicode U+00B0. The minute symbol (′) is a prime, not an apostrophe. The second symbol (″) is a double prime, not a quotation mark. Using wrong characters can break parsers in geodetic software.
Parsing DMS Coordinates in Code
If you're building an app that accepts user-entered DMS strings, you'll quickly discover there's no single standard format. Users type everything from 40°26'46"N to 40d 26m 46s N to 40 26 46 N. A practical regex that handles most variants:
/(\d+)[°d\s]+(\d+)['′m\s]+(\d+\.?\d*)["″s\s]*([NSEWnsew])/
Extract the four capture groups (degrees, minutes, seconds, direction), parse the numbers, and apply the formula. In JavaScript:
function parseDMS(dms) {
const re = /(\d+)[°d\s]+(\d+)['′m\s]+(\d+\.?\d*)["″s\s]*([NSEWnsew])/;
const m = dms.match(re);
if (!m) return null;
const dd = +m[1] + m[2] / 60 + m[3] / 3600;
return /[SWsw]/.test(m[4]) ? -dd : dd;
}That handles the happy path. Production code should also validate ranges (latitude ≤ 90, longitude ≤ 180, minutes and seconds < 60) and deal with decimal minutes (DDM) input where seconds are absent. If your application needs the reverse operation, the decimal to DMS converter shows the inverse formula.
Quick Reference: DMS to Decimal Table
Handy lookup for common minute and second values. Memorize the first few and you can estimate conversions in your head:
| Minutes | Decimal° | Seconds | Decimal° |
|---|---|---|---|
| 1′ | 0.01667 | 1″ | 0.000278 |
| 5′ | 0.08333 | 5″ | 0.001389 |
| 10′ | 0.16667 | 10″ | 0.002778 |
| 15′ | 0.25000 | 15″ | 0.004167 |
| 20′ | 0.33333 | 20″ | 0.005556 |
| 30′ | 0.50000 | 30″ | 0.008333 |
| 45′ | 0.75000 | 45″ | 0.012500 |
Quick mental math trick: 30 minutes is always 0.5°. So 15 minutes is 0.25° and 45 minutes is 0.75°. For seconds, 30 seconds is roughly 0.0083° — close enough for a sanity check. When you need exact radian values for trigonometric work, feed the decimal result into our radians to degrees converter to cross-check.
