Excel 16.0 build 19929
Windows, bitness not recorded, CPU not recorded
41 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.
Math and trigonometry functions
Refuses 2 of 1,230 recorded calls; the rest match
Of 1,230 recorded answers (1,227 in the answer bank and 3 workbook cells), 2 do not match: 2 are refused. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | DEGREES |
| Bulgarian | DEGREES |
| Czech | STUPŇŮ |
| Danish | GRADER |
| German | GRAD |
| Greek | DEGREES |
| English (Australia) | DEGREES |
| English (United Kingdom) | DEGREES |
| English (United States) | DEGREES |
| Spanish | GRADOS |
| Estonian | DEGREES |
| Finnish | ASTEET |
| French | DEGRÉS |
| Hebrew | DEGREES |
| Croatian | DEGREES |
| Hungarian | FOK |
| Indonesian | DEGREES |
| Italian | DEGREES |
| Japanese | DEGREES |
| Korean | DEGREES |
| Lithuanian | DEGREES |
| Latvian | DEGREES |
| Norwegian | GRADER |
| Dutch | GRADEN |
| Polish | STOPNIE |
| Portuguese (Brazil) | GRAUS |
| Portuguese (Portugal) | GRAUS |
| Romanian | DEGREES |
| Russian | ГРАДУСЫ |
| Slovak | STUPNE |
| Slovenian | DEGREES |
| Serbian (Latin) | STEPENI |
| Swedish | GRADER |
| Thai | DEGREES |
| Turkish | DERECE |
| Ukrainian | DEGREES |
| Vietnamese | DEGREES |
| Chinese (Simplified) | DEGREES |
| Chinese (Hong Kong) | DEGREES |
| Chinese (Traditional) | DEGREES |
Names from Microsoft's support site.
DEGREES(angle)
DEGREES(angle) converts an angle from radians to degrees. Microsoft's page says exactly that
and gives the canonical example, π radians to 180 degrees.
DEGREES(x) = x · 180 / π
| Property | Statement |
|---|---|
| Domain | all real x |
| Range | all real values the format can hold; the map is a bijection on the reals |
| Linearity | DEGREES(ax + by) = a·DEGREES(x) + b·DEGREES(y) — exactly, in the mathematics |
| Parity | odd: DEGREES(-x) = -DEGREES(x) |
| Fixed point | only x = 0 |
| Inverse | RADIANS(y) = y · π / 180 |
| Scale factor | 180/π = 57.29577951308232…, an irrational, hence never exactly a double |
| Overflow | the true value exceeds the double range once ABS(x) passes roughly 3.14 × 10^306 |
There is no analysis here at all: it is one multiplication by a constant. What makes the page worth writing is that a single multiplication by an irrational constant is exactly the situation in which two obviously-equivalent formulas stop being equivalent, and this function is the cleanest example of it on the entire worksheet surface.
| Argument | Meaning | Notes |
|---|---|---|
angle | The angle in radians. Required. | Microsoft documents no constraint |
Returns Number.
DEGREES(0) is 0, exactly, and it is the only exactly-preserved value other
than the sign structure.DEGREES(PI()) — not exactly 180. PI() is the double nearest π, not π, so the
product is the scaled image of a slightly wrong angle. Whether it rounds to 180 anyway is
a question about the rounding of one multiplication, and the answer depends on which of the
two op-graphs below is used. This is the single most-noticed behaviour of this function.DEGREES(RADIANS(x)) — not x in general. Two roundings by reciprocal irrational factors
do not compose to the identity, and the round trip loses up to about one ulp.DEGREES of a
subnormal is generally a normal number, and the operation recovers precision rather than
losing it. This direction is harmless.Microsoft's DEGREES page documents no error conditions.
| Error | Condition | Source |
|---|---|---|
#VALUE! | Non-numeric argument | Shared call model, not this page |
#NUM! | The scaled result is not finite | EV-MATH-0008, which names DEGREES — a kind and error-code convention, no count |
This function has exactly one design decision, and it decides the last bit of every result.
Two op-graphs, two different functions.
(A) result = x * (180/π) — one rounding of the constant, one rounding of the product
(B) result = (x * 180) / π — `x*180` is exact when it does not overflow, then one division
(C) result = x / (π/180) — a third variant, with the constant rounded the other way
Form (A) rounds 180/π to a double first — an error of up to half an ulp in the constant,
which becomes a relative error of up to half an ulp in every result — and then rounds the
product. Two roundings, so up to one ulp of error, and the error is systematic: it has the same
sign for every argument, because the constant is wrong in one fixed direction.
Form (B) multiplies by 180 first. Since 180 = 4 · 45 and 45 needs six significand bits,
x * 180 is exact whenever it does not overflow — no rounding at all. Then one division by
the rounded π. That is one rounding of the constant and one of the division, so nominally the
same count, but the errors do not align the same way and the results differ on a substantial
fraction of inputs. Form (B) also overflows earlier, at ABS(x) near 10^306, because the
intermediate x*180 is larger than the result.
Form (C) divides by a differently-rounded constant again.
None of the three is "wrong"; they are three functions that agree to within an ulp and disagree in the last bit. Which one a spreadsheet uses is a fact about the spreadsheet, and it is exactly the kind of fact the Handbook exists to record. The Handbook has not determined which form Excel uses, and this page will not guess.
Why it is worth determining. DEGREES is a scaling, so its error is purely relative and
constant across the range — there is no argument reduction, no cancellation, no conditioning
problem anywhere. That makes it an unusually clean probe: any disagreement between two
implementations is entirely attributable to the op-graph, with no confounding effects. It is
the ideal warm-up target for op-graph identification, and a resolved answer here would be a
model for the harder surfaces in this batch.
The correctly-rounded target. A math-correct implementation computes x · 180/π with the
constant to double-double precision and rounds once. That is achievable with a two-term split of
180/π and one fused multiply-add, and it differs from all three forms above on the arguments
where they are worst. Muller et al.'s Handbook of Floating-Point Arithmetic gives the
technique and the analysis; Goldberg's paper gives the underlying one-rounding-versus-two
argument in its standard form.
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
DEGREES · 3 lines · calc-func/src/catalogue/math.rs on GitHub22 degrees "DEGREES" (1, 1) [V "angle"] |s, a, sv| {
raw(s, a, ExcelRealPolicy::FINITE, k::degrees::degrees_kernel)
}
degrees_kernel · 3 lines · calc-func/src/ported/degrees.rs on GitHubpub fn degrees_kernel(n: f64) -> f64 {
n * (180.0 / std::f64::consts::PI)
}
raw catalogue/mathNo implementation has been published with a Handbook test suite for this function.
The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.
| Excel 16.0 build | Platform and CPU | Captured inputs |
|---|---|---|
| 19929 | Windows, bitness not recorded, CPU not recorded | 41 |
| 20430 | Windows, 64-bit, CPU not recorded | 1,227 |
Agreement on these compared inputs does not establish agreement on unmeasured inputs.
Recorded environments and comparison details.
Windows, bitness not recorded, CPU not recorded
41 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.
Windows, 64-bit, CPU not recorded
1,227 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.
RADIANS — the inverse, y · π / 180. The pair is the standard round-trip probe and
neither direction is exact.SIN, TAN — the functions that make this one necessary, all of
which take radians. Microsoft's COS page recommends RADIANS() or multiplication by
PI()/180 for exactly this reason.PI() — the constant this function is scaled by, and the source of its irreducible error.ACOS, ASIN, ATAN, ATAN2 — the inverse trigonometric functions, which return
radians and are therefore the usual callers of DEGREES.CONVERT — the general unit converter, which also handles angle units. Whether
CONVERT(x, "rad", "deg") and DEGREES(x) agree bitwise is a natural question and is
unchecked here.No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents