{
  "category": "Compatibility",
  "display_name": "FLOOR",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.FLOOR",
  "implementation_state": {
    "answer_bank": {
      "excel_builds": [
        "20430"
      ],
      "larger_numeric": 1,
      "last_bit": 0,
      "matched": 1324,
      "other_mismatch": 0,
      "refused": 10,
      "rows": 1335,
      "unread": 0,
      "worst_ulp": 4611686018427387904
    },
    "detail": "Of 1,675 recorded answers (1,335 in the answer bank and 340 workbook cells), 11 do not match: 1 differ by more than 16 ULP, 10 are refused.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": true,
    "state": "differs",
    "state_label": "Known larger differences",
    "summary": "Known larger differences on 11 of 1,675 recorded answers",
    "workbook_corpus": {
      "cells": 340,
      "matched": 340
    }
  },
  "implementations": [
    {
      "commit": "9e1884369a678158dd82d3d74188daf986995e87",
      "flavour": "excel-compatibility-candidate",
      "language": "Rust",
      "name": "CalcFunc",
      "own_code": [
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/rounding.rs#L113-L113",
        "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/rounding.rs#L556-L576"
      ],
      "repository": "https://github.com/DnaCalc/DnaCalc",
      "shared_code": [
        "catalogue/rounding::call",
        "catalogue/rounding::numeric",
        "catalogue/rounding::numbers",
        "catalogue/rounding::to_multiple",
        "catalogue/rounding::quotient",
        "decimal::truncate",
        "decimal::floor",
        "decimal::ceil",
        "ported/ceiling_floor_family::excel_quotient"
      ],
      "source": "https://github.com/DnaCalc/DnaCalc/blob/9e1884369a678158dd82d3d74188daf986995e87/crates/calc-func/src/catalogue/rounding.rs#L113-L113",
      "state": "differs",
      "suite": null,
      "summary": "Known larger differences on 11 of 1,675 recorded answers"
    }
  ],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.FLOOR.json",
  "name": "FLOOR",
  "notes": [
    {
      "basis": "12 recorded readings.",
      "documentation": null,
      "evidence": [
        {
          "commit": "1474b041c8dfa99157933d00ef2f5f5a7982f379",
          "locator": "recorded_floor_zero_identity_precedes_its_multiple_error",
          "note": "recorded readings pinned",
          "path": "apps/dna-onecalc/tests/acceptance.rs",
          "repository": "DnaCalc"
        }
      ],
      "functions": [
        "FUNC.FLOOR"
      ],
      "inferred": null,
      "kind": "quirk",
      "note_id": "FN-FLOOR-001",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "FLOOR(0, 0)",
          "correct": null,
          "excel": {
            "bits": "0x0000000000000000",
            "display": "0",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111broad-20260929-FLOOR-00002",
            "note": null,
            "path": "runs/w111-broad-20260929/answers/answers-floor.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "FLOOR(-0, -2)",
          "correct": null,
          "excel": {
            "bits": "0x0000000000000000",
            "display": "0",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x8000000000000000",
                "display": "-0",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0xc000000000000000",
                "display": "-2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111broad-20260929-FLOOR-00005",
            "note": null,
            "path": "runs/w111-broad-20260929/answers/answers-floor.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "FLOOR(1, 0)",
          "correct": null,
          "excel": {
            "bits": null,
            "display": "#DIV/0!",
            "kind": "error"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x3ff0000000000000",
                "display": "1",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111broad-20260929-FLOOR-00062",
            "note": null,
            "path": "runs/w111-broad-20260929/answers/answers-floor.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "FLOOR(0,0) and FLOOR(-0,0) return +0. A zero number with a negative significance also returns +0, not #NUM!. Only a nonzero number with significance 0 gives #DIV/0!.",
      "status": "measured",
      "title": "FLOOR of zero is +0, even with significance 0"
    },
    {
      "basis": "All 931 recorded rows with normal nonzero arguments and a number answer, Excel build 20430, recomputed for this note from the recorded inputs; the 1,335 rows of that capture also hold errors, zero and subnormal cases. On the 945 rows that include subnormal quotients, the plain route matches 857 and an exact floor 848. A separate 120 literal calls in build 20527 agree. The rule was first stated from readings of this family, so these counts are in sample.",
      "documentation": null,
      "evidence": [
        {
          "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
          "locator": null,
          "note": "the 1,335 readings",
          "path": "runs/w111-broad-20260929/answers/answers-floor.json.gz",
          "repository": "CalcFunc-Evidence"
        }
      ],
      "functions": [
        "FUNC.FLOOR"
      ],
      "inferred": "That Excel's code rounds to 15 digits this way is inferred from the fit. Whether FLOOR.MATH and FLOOR.PRECISE take the same step has not been read.",
      "kind": "excel-differs-from-math",
      "note_id": "FN-FLOOR-002",
      "open": [],
      "recorded_on": "2026-11-04",
      "repros": [
        {
          "call": "FLOOR(0.9999999999999999, 0.1)",
          "correct": {
            "bits": "0x3feccccccccccccd",
            "display": "0.9",
            "how": "Exact rational floor of number/significance, times significance, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x3ff0000000000000",
            "display": "1",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x3fefffffffffffff",
                "display": "0.9999999999999999",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x3fb999999999999a",
                "display": "0.1",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111broad-20260929-FLOOR-00083",
            "note": null,
            "path": "runs/w111-broad-20260929/answers/answers-floor.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        },
        {
          "call": "FLOOR(4503599627370496, 2)",
          "correct": {
            "bits": "0x4330000000000000",
            "display": "4503599627370496",
            "how": "Exact rational floor of number/significance, times significance, correctly rounded.",
            "kind": "number"
          },
          "excel": {
            "bits": "0x4330000000000004",
            "display": "4503599627370500",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x4330000000000000",
                "display": "4503599627370496",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x4000000000000000",
                "display": "2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture",
          "source": {
            "commit": "4d5320dfdc385354469b4d506153357bb932ab08",
            "locator": "w111broad-20260929-FLOOR-00109",
            "note": null,
            "path": "runs/w111-broad-20260929/answers/answers-floor.json.gz",
            "repository": "CalcFunc-Evidence"
          }
        }
      ],
      "schema": "efh.function-note/v1",
      "statement": "FLOOR behaves as s times the floor of number/s, where the quotient is first rounded to 15 significant decimal digits and the final product is taken in binary64. A quotient just under an integer therefore counts as that integer, and the result can exceed the number: FLOOR(0.9999999999999999,0.1) is 1. Once the quotient has more than 15 significant digits the step moves it by more than one unit, so an exact multiple can change: FLOOR(4503599627370496,2) is 4503599627370500.",
      "status": "measured",
      "title": "FLOOR rounds its quotient to 15 digits first, so the result can pass the number"
    }
  ],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n### Relationships\n\n\n- **[FLOOR.MATH](FUNC.FLOOR.MATH.md)** takes the absolute value of the significance, so signs can\n  no longer disagree, and adds a `mode` argument for negative numbers. Moving a workbook from\n  `FLOOR` to `FLOOR.MATH` changes answers: `FLOOR(-2.5, -2)` is `-2`, and the default reading of\n  `FLOOR.MATH` as Microsoft describes it moves the same arguments further from zero.\n- **`FLOOR.PRECISE`** also ignores the sign of the significance, and is the replacement Microsoft's\n  VBA reference names.\n- **`CEILING`** is the upward mirror in the same implementing module.\n- **[MROUND](FUNC.MROUND.md)** rounds to the nearest multiple. The notes record that it too treats\n  a quotient very close to a half as that half, so the worksheet's multiple functions share the\n  idea of cleaning up a quotient, though the notes do not establish a shared routine.\n- **[INT](FUNC.INT.md)** is the floor to integers, toward minus infinity. `FLOOR(x, 1)` is the same\n  idea, but do not assume the same answer next to an integer: `FLOOR(1*(1-2^-51), 1)` is `1`.\n- **[TRUNC](FUNC.TRUNC.md)** and **[ROUNDDOWN](FUNC.ROUNDDOWN.md)** round toward zero at a decimal\n  digit position rather than at a multiple.\n\n\n",
    "how-to-implement": "\n### Numerical notes\n\n\nThe notes below cover zero. This section covers what the plain definition misses everywhere else.\n\n**The plain route fails visibly.** `s × floor(x / s)` in binary64 rounds twice around one exact\nstep. `x / s` rounds, and when the true quotient is an integer the rounded one can land just\nbelow it, which costs a whole step. The floor is exact. The product `s × q` rounds again, so the\nanswer need not be a multiple of the represented `s`.\n\n**Excel does not take the exact floor of the stored values either.** A careful implementation\nmight compute the true floor of the two binary64 values. Excel does not. `0.1` is stored slightly\nabove one tenth, so the exact quotient of `0.5` by it is slightly below 5 and its exact floor is 4.\nExcel's `FLOOR(0.5, 0.1)` is `0.5`.\n\n**The 15-digit quotient.** Rounding `x / s` to 15 significant decimal digits, then taking the floor,\nthen multiplying by `s` in binary64, matches Excel on more rows than either alternative:\n\n| Readings | Plain route | Exact floor | 15-digit quotient |\n|---|---|---|---|\n| 945 rows with nonzero arguments and a number as the answer, Excel 16.0 build 20430, Windows 64-bit, CPU not recorded | 857 | 848 | 945 |\n| 120 calls with two literal arguments, Excel 16.0 build 20527, Windows 64-bit | 114 | not computed | 120 |\n\nThe 945 in the last column counts a subnormal quotient or `number` as zero. Those rows are part of\na set of 1,335 readings, and the rule matches all 1,335 once the error rows of *Errors* and the\nzero rows of the notes below are added to it. All of these counts were recomputed for this page\nfrom the recorded inputs. None is a held-out result: the rule was first stated from readings of\nthis family, and the same readings are used here. The two sets hold different inputs, so they say\nnothing about a difference between the two builds.\n\nWhat the rule explains, each from a recorded reading:\n\n| Call | Excel | What happened |\n|---|---|---|\n| `FLOOR(1938.84, 9.06)` | `1938.8400000000001` | Quotient just under 214 counts as 214; the product lands above `number` |\n| `FLOOR(-1990.8, -8.4)` | `-1990.8000000000002` | The same with both signs negative |\n| `FLOOR(0.9999999999999999, 0.1)` | `1` | Result greater than `number` |\n| `FLOOR(1*(1-2^-51), 1)` | `1` | The quotient rounds to 1 at 15 digits |\n| `FLOOR(1*(1-2^-50), 1)` | `0` | One step further from 1, and it does not |\n| `FLOOR(4503599627370496, 2)` | `4503599627370500` | An exact multiple, moved, because the quotient has 16 digits |\n\n**The last row is the unintuitive one.** Once the quotient has more than 15 significant digits the\nrounding step moves it by far more than one unit, and the answer changes though the number was\nalready a multiple. A power-of-two significance gives no protection, although both the division\nand the multiplication are exact there. Among the recorded readings the rule also holds at very\nlarge quotients, where the answer can differ from `number` in the sixteenth digit.\n\n**Everyday consequence.** For prices and quantities in ordinary ranges the 15-digit step does what\na user wants: a quotient of 28.999999999999996 counts as 29. The price is that the result can sit\none unit above `number`, so `FLOOR(x, s) <= x` is not safe as a test in a formula.\n\n\n",
    "quirks": "\n### Result and edge cases\n\n\nReturns `Number`.\n\n- **`number` is zero.** The notes below record `FLOOR(0, 0)` and `FLOOR(-0, 0)` as `+0`, and a zero\n  number with a negative significance as `+0` rather than `#NUM!`. A zero number is settled before\n  either error can arise.\n- **`significance` is zero with a nonzero `number`** gives `#DIV/0!`.\n- **`number` is already a multiple.** Microsoft's VBA reference says no rounding occurs. For\n  ordinary sizes that holds, but it is not true at every size: see the large-quotient readings\n  in *Numerical notes*, where `FLOOR(4503599627370496, 2)` moves the number.\n- **A tiny negative number with a positive significance.** The rule gives one step below zero, and\n  `FLOOR(-1E-300, 2)` is `-2` in the recorded readings. One reading is an exception:\n  `FLOOR(-2.2250738585072014E-308, 2)` is `0`, where the quotient has fallen into the subnormal\n  range.\n- **The largest double.** `FLOOR(1.7976931348623157E+308, 0.1)` and the same number with\n  significance `2` both give `#NUM!`, and so does its negative at significance `0.1`, `2`, `-0.1`\n  and `-2`.\n\n\n\n### Errors\n\n\n| Error | Condition | Source |\n|---|---|---|\n| `#VALUE!` | Either argument is non-numeric | Microsoft |\n| `#NUM!` | `number` positive and `significance` negative | Microsoft; 349 recorded readings |\n| `#DIV/0!` | `significance` zero and `number` nonzero | 23 recorded readings and the notes below; not on either Microsoft page read here |\n| `#NUM!` | The quotient or the final product leaves the number range | 6 recorded readings at the largest double |\n\nNeither Microsoft page read for this entry says what a zero significance does. The readings above\nare Excel 16.0 build 20430, Windows 64-bit, with the CPU not recorded.\n\nMicrosoft's support page explains the `#NUM!` example as \"different signs\", and its remarks say a\nnegative number is rounded away from zero. Neither sentence is general. `FLOOR(-2.5, 2)` has\ndifferent signs and returns a number, and `FLOOR(-2.5, -2)` in the same page's example table\nrounds toward zero. The VBA reference states the cases correctly, and the table under *What it\ncomputes* follows it.\n\n",
    "sources": "- Microsoft Support, \"FLOOR function\" —\n  <https://support.microsoft.com/en-us/office/floor-function-14bb497c-24f2-4e04-b327-b0b4de5a8886>\n  (syntax, the two sign remarks, the `#VALUE!` and `#NUM!` conditions and the examples). Read\n  through a fetch that returned a summary with quoted text, not the raw page.\n- Microsoft Learn, \"WorksheetFunction.Floor method (Excel)\" —\n  <https://learn.microsoft.com/en-us/office/vba/api/excel.worksheetfunction.floor> (the sign cases,\n  the exact-multiple remark and the replacement notice).\n- The recorded `FLOOR` readings the notes below cite: 1,335 inputs, Excel 16.0 build 20430, Windows\n  64-bit. The counts and the table in *Numerical notes* were recomputed from them for this page.\n- The catalogue capture cited by the notes below for this family: Excel 16.0 build 20527, Windows\n  64-bit, of which 120 rows are `FLOOR` calls with two literal arguments. The `2^-51` and `2^-50`\n  rows come from the same capture.\n- Handbook, [Function notes](../notes/NOTES.md), for the zero cases.\n- Handbook, [The value universe](../model/01-value-universe.md),\n  [Coercion and lifting](../model/02-coercion-and-lifting.md) and\n  [Claim language and honesty](../model/06-claim-language.md).\n- Handbook projections `data/functions/FUNC.FLOOR.json` and `data/presence/FUNC.FLOOR.json` (arity,\n  category, implementing module and sibling set).\n\n",
    "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.\n\n| Excel 16.0 build | Platform and CPU | Captured inputs |\n|---|---|---:|\n| 20430 | Windows, 64-bit, CPU not recorded | 1,335 |\n\nThe record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.\n\n[Recorded environments and comparison details](https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.FLOOR.json).",
    "what-it-does": "\n`FLOOR(number, significance)` rounds `number` down to a multiple of `significance`. The\nmathematical definition is one line:\n\n    FLOOR(x, s) = s × floor(x / s)\n\nThe floor is taken on the **quotient**, not on the number, and that one fact sets the direction\nfor every sign combination. A quotient of 1.25 floors to 1 and a quotient of −1.25 floors to −2,\nso the same rule rounds toward zero in some cases and away from it in others:\n\n| `number` | `significance` | Quotient | Direction of the result | Example |\n|---|---|---|---|---|\n| positive | positive | positive | toward zero | `FLOOR(3.7, 2)` is `2` |\n| negative | negative | positive | toward zero | `FLOOR(-2.5, -2)` is `-2` |\n| negative | positive | negative | away from zero | `FLOOR(-2.5, 2)` is `-4` by the rule |\n| positive | negative | negative | none: `#NUM!` | `FLOOR(2.5, -2)` |\n\nThe first, second and fourth rows are Microsoft's own examples. The third follows from the\ndefinition and from Microsoft's VBA reference, which says a positive significance rounds a\nnegative number away from zero; all 292 recorded readings with that sign pattern fit it.\n\nThat definition is not quite what Excel evaluates. In recorded readings Excel rounds the quotient\nto 15 significant decimal digits **before** it takes the floor:\n\n    FLOOR(x, s) = s × floor( x / s rounded to 15 significant digits )\n\nThe difference is small in size and large in effect, because a quotient that lands just under an\ninteger is treated as that integer. `FLOOR(1938.84, 9.06)` is `1938.8400000000001` in Excel, where\nthe plain definition in binary64 gives `1929.7800000000002`, one whole step lower. *Numerical\nnotes* below gives the counts and the limits of that statement.\n\nDomain and range: all real pairs except those in *Errors*. The result is a multiple of\n`significance` as far as the final multiplication can represent one. It is usually at or below\n`number` for a positive quotient, but not always, as the example above shows.\n\n\n\n### Arguments\n\n\n| Argument | Meaning | Default |\n|---|---|---|\n| `number` | The numeric value to round. Required. | none |\n| `significance` | The multiple to round to. Required. | none |\n\n- **Both arguments are required.** The function has an arity of exactly two. Its modern relatives\n  take `significance` as optional with a default of 1; `FLOOR` does not.\n- **`significance` is a multiple, not a number of digits.** `FLOOR(1.58, 0.1)` is `1.5`.\n\n\n"
  },
  "signature": {
    "display": "FLOOR(number, significance)",
    "parameters": [
      {
        "description": null,
        "name": "number",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "significance",
        "optional": false,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "implemented",
        "reason": null
      },
      "arity": {
        "max": 2,
        "min": 2
      },
      "category": "Compatibility",
      "classification": {
        "arg_preparation_profile": "ValuesOnlyPreAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "None",
        "host_interaction_class": "None",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "RefOnly",
        "thread_safety_class": "SafePure",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "Number rounded down, toward zero, to a multiple of the significance",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Rounds a number down, toward zero",
        "microsoft_url": "https://support.microsoft.com/en-us/office/floor-function-14bb497c-24f2-4e04-b327-b0b4de5a8886"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "FLOOR"
        },
        {
          "locale": "bg-BG",
          "name": "FLOOR"
        },
        {
          "locale": "cs-CZ",
          "name": "ZAOKR.DOLŮ"
        },
        {
          "locale": "da-DK",
          "name": "AFRUND.GULV"
        },
        {
          "locale": "de-DE",
          "name": "FLOOR"
        },
        {
          "locale": "el-GR",
          "name": "FLOOR"
        },
        {
          "locale": "en-AU",
          "name": "FLOOR"
        },
        {
          "locale": "en-GB",
          "name": "FLOOR"
        },
        {
          "locale": "en-US",
          "name": "FLOOR"
        },
        {
          "locale": "es-ES",
          "name": "MULTIPLO.INFERIOR"
        },
        {
          "locale": "et-EE",
          "name": "FLOOR"
        },
        {
          "locale": "fi-FI",
          "name": "PYÖRISTÄ.KERR.ALAS"
        },
        {
          "locale": "fr-FR",
          "name": "PLANCHER*"
        },
        {
          "locale": "he-IL",
          "name": "FLOOR"
        },
        {
          "locale": "hr-HR",
          "name": "FLOOR"
        },
        {
          "locale": "hu-HU",
          "name": "PADLÓ"
        },
        {
          "locale": "id-ID",
          "name": "FLOOR"
        },
        {
          "locale": "it-IT",
          "name": "ARROTONDA.DIFETTO"
        },
        {
          "locale": "ja-JP",
          "name": "FLOOR"
        },
        {
          "locale": "ko-KR",
          "name": "FLOOR"
        },
        {
          "locale": "lt-LT",
          "name": "FLOOR"
        },
        {
          "locale": "lv-LV",
          "name": "FLOOR"
        },
        {
          "locale": "nb-NO",
          "name": "FLOOR"
        },
        {
          "locale": "nl-NL",
          "name": "FLOOR"
        },
        {
          "locale": "pl-PL",
          "name": "ZAOKR.W.DÓŁ"
        },
        {
          "locale": "pt-BR",
          "name": "FLOOR"
        },
        {
          "locale": "pt-PT",
          "name": "ARRED.DEFEITO"
        },
        {
          "locale": "ro-RO",
          "name": "FLOOR"
        },
        {
          "locale": "ru-RU",
          "name": "FLOOR"
        },
        {
          "locale": "sk-SK",
          "name": "FLOOR"
        },
        {
          "locale": "sl-SI",
          "name": "FLOOR"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "FLOOR"
        },
        {
          "locale": "sv-SE",
          "name": "RUNDA.NER"
        },
        {
          "locale": "th-TH",
          "name": "FLOOR"
        },
        {
          "locale": "tr-TR",
          "name": "TABANAYUVARLA işlevi"
        },
        {
          "locale": "uk-UA",
          "name": "FLOOR"
        },
        {
          "locale": "vi-VN",
          "name": "FLOOR"
        },
        {
          "locale": "zh-CN",
          "name": "FLOOR"
        },
        {
          "locale": "zh-HK",
          "name": "FLOOR"
        },
        {
          "locale": "zh-TW",
          "name": "FLOOR"
        }
      ],
      "signature": {
        "display": "FLOOR(number, significance)",
        "parameters": [
          {
            "description": null,
            "name": "number",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "significance",
            "optional": false,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "FLOOR",
      "version_marker": null,
      "xlcall": {
        "code": "285",
        "symbol": "xlfFloor"
      }
    },
    "microsoft": "https://support.microsoft.com/en-us/office/floor-function-14bb497c-24f2-4e04-b327-b0b4de5a8886"
  },
  "try_it": {
    "formula": "=FLOOR(2.3,0.5)"
  },
  "url": "https://handbook.dnacalc.com/functions/FLOOR.html",
  "variants": [],
  "versions": [
    {
      "behaviour": "FLOOR(0, 0) returned 0 (0x0000000000000000). FLOOR(-0, -2) returned 0 (0x0000000000000000). 3 further recorded controls are attached. Inputs were supplied through cells using Value2. These are controls from this environment, not a same-input comparison with another build.",
      "excel_build": "16.0 build 20430",
      "observations": [
        {
          "call": "FLOOR(0, 0)",
          "excel": {
            "bits": "0x0000000000000000",
            "display": "0",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "FLOOR(-0, -2)",
          "excel": {
            "bits": "0x0000000000000000",
            "display": "0",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x8000000000000000",
                "display": "-0",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0xc000000000000000",
                "display": "-2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "FLOOR(1, 0)",
          "excel": {
            "bits": null,
            "display": "#DIV/0!",
            "kind": "error"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x3ff0000000000000",
                "display": "1",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x0000000000000000",
                "display": "0",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "FLOOR(0.9999999999999999, 0.1)",
          "excel": {
            "bits": "0x3ff0000000000000",
            "display": "1",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x3fefffffffffffff",
                "display": "0.9999999999999999",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x3fb999999999999a",
                "display": "0.1",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        },
        {
          "call": "FLOOR(4503599627370496, 2)",
          "excel": {
            "bits": "0x4330000000000004",
            "display": "4503599627370500",
            "kind": "number"
          },
          "input_route": "cell-value2",
          "inputs": [
            {
              "name": "number",
              "value": {
                "bits": "0x4330000000000000",
                "display": "4503599627370496",
                "kind": "number"
              }
            },
            {
              "name": "significance",
              "value": {
                "bits": "0x4000000000000000",
                "display": "2",
                "kind": "number"
              }
            }
          ],
          "recorded_in": "Excel 16.0 build 20430, Windows 64-bit, CPU not recorded in this capture"
        }
      ],
      "platform": "Windows 64-bit, CPU not recorded in this capture",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-FLOOR-001.json",
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/3345a87/content/notes/FN-FLOOR-002.json"
      ]
    },
    {
      "behaviour": "1,335 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.",
      "excel_build": "16.0 build 20430",
      "platform": "Windows, 64-bit, CPU not recorded",
      "sources": [
        "https://github.com/DnaCalc/ExcelFunctionsHandbook/blob/5dc75391aa5125ccc5abdb095da85950980d6fd8/content/evidence/environments/FUNC.FLOOR.json"
      ]
    }
  ]
}