Math and trigonometry functions

ASIN

Matches all 21,613 recorded answers

Recorded: 21,610 in the answer bank and 3 workbook cells. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicASIN
BulgarianASIN
CzechASIN
DanishARCSIN
GermanARCSIN
GreekASIN
English (Australia)ASIN
English (United Kingdom)ASIN
English (United States)ASIN
SpanishASENO
EstonianASIN
FinnishASIN
FrenchASIN
HebrewASIN
CroatianASIN
HungarianARCSIN
IndonesianASIN
ItalianARCSEN
JapaneseASIN
KoreanASIN
LithuanianASIN
LatvianASIN
NorwegianASIN
DutchBOOGSIN
PolishASIN
Portuguese (Brazil)ASEN
Portuguese (Portugal)ASEN
RomanianASIN
RussianASIN
SlovakASIN
SlovenianASIN
Serbian (Latin)ASIN
SwedishASIN
ThaiASIN
TurkishASİN
UkrainianASIN
VietnameseASIN
Chinese (Simplified)ASIN
Chinese (Hong Kong)ASIN
Chinese (Traditional)ASIN

Names from Microsoft's support site.

What it does

ASIN(number)

ASIN(number) is the principal inverse sine: the angle in radians whose sine is number.

asin: [-1, 1] -> [-pi/2, pi/2],    sin(asin x) = x
  • Domain: the closed interval [-1, 1]. Outside it no real angle has that sine.
  • Range: [-pi/2, pi/2], the principal branch. Microsoft's Learn reference states this range explicitly.
  • Parity: odd. asin(-x) = -asin(x), exactly. An implementation should compute on |x| and restore the sign, which makes the identity hold to the last bit for free.
  • Monotonicity: strictly increasing, from -pi/2 at x = -1 through 0 at the origin to pi/2 at x = 1.
  • Derivative: d/dx asin x = 1 / sqrt(1 - x^2) — finite in the interior, infinite at both endpoints. Vertical tangents at x = ±1.
  • Series about zero: asin x = x + x^3/6 + 3x^5/40 + 15x^7/336 + ..., converging on |x| < 1 but slowly near the endpoints. For small x, asin x -> x with leading correction x^3/6, so subnormal arguments pass through unchanged.
  • Endpoint behaviour: with x = 1 - t, asin(x) = pi/2 - sqrt(2t)(1 + t/12 + ...). The square-root approach to the endpoint is the same phenomenon as in ACOS, but here it appears as a correction to a value near pi/2 rather than as the value itself — which changes everything about the numerics.
  • Complementary identity: asin(x) + acos(x) = pi/2 exactly.
  • Relation to arctangent: asin(x) = atan(x / sqrt(1 - x^2)) on the open interval, and asin(x) = atan2(x, sqrt(1-x^2)) in Excel's x-first order. The atan2 form is the one that survives the endpoints.
  • Complex continuation: branch cuts along (-infinity, -1] and [1, +infinity), the same cuts as acos — the real domain is exactly their complement on the real axis.

Abramowitz & Stegun cover the inverse circular functions in chapter 4 section 4.4.

Arguments

ArgumentMeaningDefault
numberThe sine of the angle you want. Required.—

Microsoft's Learn reference describes it as "the sine of the angle that you want; must be from -1 to 1".

The misunderstood point is the unit of the result: radians. The Learn reference gives the standard remedy — multiply by 180/PI(), or use DEGREES.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

Quirks

Result and edge cases

Returns Number — an angle in radians in [-pi/2, pi/2].

  • The endpoints -1 and 1 are in the domain and return -pi/2 and pi/2. Closed interval; an implementation testing |x| < 1 gets both wrong, and they are the two arguments users pass most often.
  • Just outside the endpoints — one ulp beyond — is a domain failure. As with ACOS, this matters because the natural producer of an ASIN argument is a ratio that ought to be at most one and, after rounding, sometimes is not. Clamp before calling.
  • Zero returns zero, and the sign of zero should survive an odd implementation.
  • Subnormals pass through unchanged: asin(x) = x to within rounding for arguments that small.
  • Large magnitudes, including anything a text conversion is likely to produce, are domain failures.
  • Arrays lift elementwise, with element-local errors on out-of-domain elements.

How to implement

Numerical notes

ASIN's error behaviour is the mirror of ACOS's, and the mirror is the point: they are hard in opposite places, which is why neither can be built naively on the other.

Where ASIN is easy. Near zero the function is essentially the identity, and any decent approximation gets full relative accuracy. Near the endpoints the value is near ±pi/2, which is comfortably far from zero, so the relative accuracy of the answer is not destroyed by the square-root singularity — the singularity is in the derivative, not in the value. This is exactly where ACOS is hard, because there the answer is near zero.

Where ASIN is hard. The absolute accuracy near the endpoints still depends on computing sqrt(1 - x^2) well, and that is a subtraction of nearly equal quantities:

  • Do not compute 1 - x*x. The product rounds first, and near |x| = 1 that rounding is a full ulp of 1, which is much larger than the quantity being kept.
  • Do compute (1 - x)(1 + x). Both factors are exact for doubles near the endpoints (Sterbenz for the first, exactness of the sum for the second), and the product loses only its own final rounding.

The standard branch structure, as in Cody & Waite and fdlibm's e_asin.c:

  1. For |x| <= 1/2, evaluate a minimax rational approximation to asin directly. The argument is comfortably away from the singularity and the polynomial does all the work.
  2. For 1/2 < |x| <= 1, reduce with the half-angle identity asin(x) = pi/2 - 2*asin(sqrt((1-x)/2)). The inner argument is at most 1/2, so branch 1 evaluates it; the outer subtraction is safe because both terms are of order one and the answer is of order one.
  3. Restore the sign at the end. Never branch on sign inside the kernel.

Note the asymmetry with ACOS: ASIN can afford the pi/2 - ... subtraction at the endpoints and ACOS cannot, because ASIN's answer there is large and ACOS's is small. Two functions, one identity, opposite verdicts. This is the single most useful thing to understand about the pair.

Intrinsic information loss. The same caution as on the ACOS page applies from the other side: if x arrived as the result of a computation, the accuracy of asin(x) near the endpoints is limited by how accurately x itself represents the intended sine, and the derivative blows up there. No implementation can recover information the argument does not carry. Numerical geometry code that needs a small angle accurately should get it from ATAN2 of a cross product, not from ASIN of a ratio.

Self-tests without an oracle. ASIN(x) + ASIN(-x) must be exactly zero if the sign is handled by symmetry. ASIN(x) + ACOS(x) - PI()/2 across the domain exposes the branch split of both functions at once. SIN(ASIN(x)) - x is a cheap round trip whose residual profile shows where the square root is being computed badly.

Rust code

Show the CalcFunc source of this function

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.

ASIN · 1 lines · calc-func/src/catalogue/math.rs on GitHub
5 asin "ASIN" (1, 1) [V "number"] |s, a, sv| { unary(s, a, k::asin::asin_kernel) }

Kernels shared with other functions

Argument and result plumbing

  • num catalogue/kit
  • out catalogue/kit

No implementation has been published with a Handbook test suite for this function.

Version differences

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 buildPlatform and CPUCaptured inputs
19929Windows, bitness not recorded, CPU not recorded18
20430Windows, 64-bit, CPU not recorded21,610
  • XC-ASIN-001: build 19929 versus build 20430; 5 same-input pairs, 0 differing answers. Compared axes: excel-build. Numeric answers were compared by their recorded binary64 bits; other answers by typed value.

Agreement on these compared inputs does not establish agreement on unmeasured inputs.

Recorded environments and comparison details.

Excel 16.0 build 19929

Windows, bitness not recorded, CPU not recorded

18 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.

Excel 16.0 build 20430

Windows, 64-bit, CPU not recorded

21,610 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.

Alternatives

Relationships

  • ACOS — the complementary partner, ASIN(x) + ACOS(x) = PI()/2. Same domain, mirrored range, opposite monotonicity. The pair is not interchangeable by a sign flip.
  • ATAN — the unrestricted-domain member of the trio. ASIN(x) = ATAN(x/SQRT(1-x^2)) inside the open interval, and that identity is the usual way ASIN gets implemented on top of ATAN when only one of the two is available.
  • ATAN2 — ASIN(x) = ATAN2(SQRT(1-x^2), x) in Excel's x-first order, and this is the form that behaves at the endpoints where the plain ATAN identity divides by something approaching zero.
  • SIN — the forward function. SIN(ASIN(x)) = x to rounding across the domain; ASIN(SIN(t)) folds t into [-pi/2, pi/2].
  • ASINH — the hyperbolic namesake, defined on all reals. Where ASIN is bounded in both domain and range, ASINH is bounded in neither; they share a name and nothing else.
  • DEGREES — the usual consumer.
  • Confused with: 1/SIN(x), which is CSC; and with ACSC, which Excel does not have.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents