FIXED Function (Calligra Sheets)
Use FIXED in Calligra Sheets for decimal text formatting, optional grouping and negative precision, with tested rounding and locale-specific examples.
Verification status: 19 selected formulas were executed through the Calligra Sheets 25.04.2 calculation engine library in the C locale. Exact typed outputs and source-derived checks are documented; 26.08.2 was source-checked only. No GUI-cell or import claim. How formula examples are checked
Help correction: In the tested implementation, TRUE in the third argument suppresses grouping and FALSE keeps it. A versioned help example that shows FALSE removing the separator does not match this behavior.
Quick answer: =FIXED(1234.567) returns "1,234.57" in the tested engine.
Availability and version history
- Introduced: First release not established; the name is present in Calligra 2.4.0 source.
- Supported in: Calligra Sheets 26.08.2, with the limitations described here; no retirement established.
- Scope: Desktop Sheets with the Text module. Formulas use English names and semicolon separators.
- Checked: October 14, 2026: selected 25.04.2 engine-library formulas and independent reconstructions; 26.08.2 source only. The test locale was C. No GUI-cell, import or other-locale execution is claimed.
What FIXED returns
FIXED returns a number as decimal text, optionally with group separators. Unlike changing a cell format, it creates a string. The implementation obtains the decimal symbol, group separator and negative sign from the calculation locale; the tests here used the C locale with a period and comma. Official function reference.
Syntax and arguments
=FIXED(number[;decimals[;no_grouping]])
number is required. decimals defaults to 2. no_grouping defaults to FALSE: use TRUE to omit group separators. A negative decimal count rounds digits to the left of the decimal point and prints no fractional digits. Brackets mark optional arguments and are not typed. Registration and implementation.
Reproducible engine examples
Quotation marks identify text results; error tokens without quotes are actual errors. Numeric results are rounded here to twelve decimal places. The reconstruction column applies independent decimal arithmetic or the inspected character/parser rules, rather than claiming another application test.
| Formula | Engine result | Independently reconstructed expectation |
|---|---|---|
=FIXED(1234.567) |
"1,234.57" |
"1,234.57" |
=FIXED(1234.567;0) |
"1,235" |
"1,235" |
=FIXED(1234.567;2;TRUE()) |
"1234.57" |
"1234.57" |
=FIXED(1234.567;-1) |
"1,230" |
"1,230" |
=FIXED(-1234.567;2) |
"-1,234.57" |
"-1,234.57" |
=FIXED(12.5;0) |
"13" |
"13" |
=FIXED(-12.5;0) |
"-13" |
"-13" |
=FIXED(0;2) |
"0.00" |
"0.00" |
Practical worksheet
Put 1234.567 in A2. Use =FIXED(A2;2;TRUE()) for the tested ungrouped string 1234.57, or =FIXED(A2;2;FALSE()) for 1,234.57. Keep the amount in A2 for arithmetic and export the chosen text column only when the receiving system expects that exact separator convention. Omitting grouping does not make the decimal separator locale-independent.
Advanced interpretation and checks
There are two distinct rounding paths. For a nonnegative decimal count, the implementation formats the absolute value and then restores the sign: the tested whole-unit ties are 12.5 → 13 and −12.5 → -13. For a negative count, it first uses a floor-based scaling rule: 15 at −1 → 20, but −15 at −1 → -10. Do not infer one sign-symmetric rule from the first pair and apply it to the second.
The tested fractional arguments 1.9 and −1.9 act as one decimal place and tens rounding respectively. Prefer explicit integer precision in a reusable worksheet. The executed advanced equality below checks the nonnegative-precision negative-half case directly.
=FIXED(-12.5;0)=FIXED(-13;0)
The executed result was TRUE.
Boundaries and troubleshooting
A TRUE third argument removes grouping; FALSE or omission preserves it. The parameter name often used in documentation, no_commas, is about grouping, not a promise that every locale uses commas. Here a negative precision of −1 returns 1,230, whereas DOLLAR at −1 returns 1,230.00 under the same test locale.
Numeric text was accepted, nonnumeric amount became zero, and nonnumeric precision became zero in the listed cases. Missing or too many arguments produced #VALUE!. The code uses binary64 and text formatting, so do not use the displayed digits as a guarantee of additional stored precision.
| Formula | Engine result |
|---|---|
=FIXED(-15;-1) |
"-10" |
=FIXED(15;-1) |
"20" |
=FIXED(1234.567;1.9) |
"1,234.6" |
=FIXED(1234.567;-1.9) |
"1,230" |
=FIXED(1234.567;2;FALSE()) |
"1,234.57" |
=FIXED("1234.567";2) |
"1,234.57" |
=FIXED("abc";2) |
"0.00" |
=FIXED(123;"abc") |
"123" |
=FIXED() |
#VALUE! |
=FIXED(1;2;0;0) |
#VALUE! |
Official evidence and precision scope
- Function-specific implementation
- Versioned help
- Locale Default
- Locale Constructor
- Locale Symbols
- Float Conversion
The complete selected callback is byte-identical in the inspected 25.04.2 and 26.08.2 sources. The text module has an unrelated SEARCH change; whole-file equality is not claimed. The locale helpers are byte-identical. These comparisons do not establish execution of the later release.