Decimal to degrees and minutes converter
40.7128° becomes 40° 42.768′: whole degrees plus minutes with decimals, stopping before seconds, the way aviation reports, marine waypoint lists and telescope setting circles write positions. Negative values keep their sign apart. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 40.7128
- Degrees
- 40
- Minutes
- 42.768
- Sign
- 1
- Absolute decimal
- 40.7128
Decimal degrees are the compact machine form used by GPS receivers, spreadsheets, and mapping APIs, but plenty of working notation stops at minutes of arc and never bothers with seconds. Aviation weather reports, marine waypoint lists, telescope setting circles, and many classroom exercises all write coordinates as whole degrees plus a fractional minute. This converter takes one finite decimal-degree number and returns the whole-degree part, the remaining minutes with decimals, the sign kept separately, a printable formatted string, and a reconstructed decimal value so you can verify the round trip. Negative values are split on their absolute magnitude and reported with sign minus one, so minus forty point seven one two eight becomes forty degrees and forty-two point seven six eight minutes with a negative sign. Inputs that are missing, non-numeric, NaN, or Infinity fail with a clear validation error instead of producing garbage.
How decimal degrees become degrees and minutes
One degree of arc contains exactly sixty minutes of arc, so the conversion from a decimal-degree value v is a single sexagesimal split. First the sign is set aside: if v is negative the result carries sign minus one and all further work uses the absolute value; zero and positive values carry sign plus one. The whole-degree component is the integer floor of the absolute value.
The fractional remainder is then multiplied by sixty to obtain minutes of arc, and that product is the minute component, kept with decimals rather than being split further into seconds. Minutes are rounded to a fixed number of decimal places for display stability, and if rounding pushes the minute value to sixty it carries into the degree component, so you never see an ugly result such as forty degrees sixty minutes when the input sits a hair below forty-one degrees.
Unlike a full degrees-minutes-seconds converter, this tool deliberately stops at minutes, which is exactly the granularity many operational formats require.
Where degrees-and-minutes notation shows up in real work
Marine and aviation workflows are the classic home of the degrees-and-minutes format: waypoint lists, Notice to Airmen coordinates, and many chart plotters express positions as whole degrees with decimal minutes, so a trusted converter removes the spreadsheet formula drift that creeps in when each team hand-rolls its own multiplication by sixty.
Amateur astronomy is another regular user, since setting circles and observing logs often record declination in degrees and arcminutes without seconds, and educators teaching coordinate systems want students to see both the signed decimal form and the degree-minute form side by side without hand-calculating sixty-based remainders under exam time pressure.
Data teams building ETL pipelines over GPS exports frequently need to emit fixed-width degree-minute columns for partner systems that never adopted full decimal degrees, and deterministic rounding plus carry means batch exports do not flip a point by one minute at a boundary. If you need full degrees-minutes-seconds with a hemisphere letter, or the inverse path back to decimal, treat those as separate tools rather than overloading this page.
What you can do with it
Marine and aviation waypoint formatting
Turn decimal GPS coordinates into whole degrees plus decimal minutes for chart plotters, NOTAMs, and operational waypoint lists.
Bulk coordinate ETL
Convert entire columns of decimal degrees to stable degree-minute strings with deterministic rounding and clear validation errors.
Teaching coordinate systems
Show students the exact degree-and-minute split of a signed decimal value so answer keys match one ground truth.
FAQ
What is the difference between this and a DMS converter?
A DMS converter splits the leftover minutes further into seconds of arc. This tool stops at minutes: you get whole degrees plus a fractional minute value, which is the notation used by many marine, aviation, and astronomy formats.
How are negative values handled?
The split runs on the absolute value and the sign is reported separately as -1.
What input is rejected?
The value must be a finite number; failed validation is not charged.
Can minutes ever come out as 60?
No. Minutes are rounded to a fixed precision, and if rounding pushes them to sixty they carry into the degree component, so output is always clean whole degrees plus minutes below sixty.
What does it cost?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/math/decimal-to-minutes-degrees \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":40.7128}'const res = await fetch("https://api.kit.forhosting.com/math/decimal-to-minutes-degrees", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 40.7128
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/decimal-to-minutes-degrees",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 40.7128
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/decimal-to-minutes-degrees", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":40.7128}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":40.7128}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/decimal-to-minutes-degrees", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 40.7128
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.decimal_to_minutes_degrees",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
How decimal degrees become degrees and minutes
The pipeline is pure deterministic floating-point arithmetic: no random seeds, no wall-clock timestamps, no network lookups, and no model drift, which means the same input always yields the same JSON on the server and in the browser. Inputs that are missing, empty, non-numeric strings, NaN, or Infinity are rejected with invalid_input and a message that names the offending field, so calling scripts can surface a precise fix instead of silently publishing a wrong position.
What you send and what you get back
The field is required. Classic checks include forty point seven one two eight for a New York City latitude sample, minus seventy-four point zero zero six for the same city west of Greenwich, zero for the equator or prime meridian edge case, and a non-finite or non-numeric value to exercise the error path. Wire the free browser form for homework and quick sanity checks, then call the identical contract from scripts when you need bulk conversion of coordinate columns. Missing values, booleans, arrays, non-numeric strings, NaN, and Infinity all fail with invalid_input and are not charged. On success the response echoes the cleaned value, the whole degrees as an integer, the remaining minutes as a rounded fractional number, the sign as plus or minus one, absolute_decimal as the magnitude the split ran on, a formatted string with the degree and prime symbols such as forty degrees forty-two point seven six eight minutes, a formatted_signed variant that prepends a minus when the input is negative, a reconstructed decimal computed as sign times degrees plus minutes over sixty for quick verification, the method name decimal_to_minutes_degrees, and a short formula string describing the split. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where degrees-and-minutes notation shows up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.