How to Format Currency in a Notion Formula
🔍 WiseChecker

How to Format Currency in a Notion Formula

When you work with financial data in a Notion database, raw numbers like 1234.5 do not clearly communicate currency values. Without formatting, you risk misreading amounts or confusing your team during budget reviews. Notion formulas do not have a built-in currency format function, but you can combine text functions and number rounding to produce clean results like $1,234.50 or €1.234,50. This article explains how to build a formula that adds a currency symbol, formats thousands with commas, and rounds to two decimal places.

Key Takeaways: Formatting Currency in a Notion Formula

  • format() and round() functions: Convert a number to text and limit decimal places to two.
  • slice() and length() functions: Insert commas every three digits from the right side of the integer part.
  • concat() function: Join the currency symbol, the formatted number, and optional decimal zeros.

How Notion Handles Numbers and Text in Formulas

Notion formulas can output only one data type: text, number, date, or boolean. To show a currency symbol and comma separators, you must convert the number to text using the format() function. The raw number stays unchanged in the database, but the formula property displays the formatted string.

Prerequisites

You need a Notion database with at least one number property. The formula reads this number and returns the formatted currency string. You do not need any paid plan — this works on all Notion plans.

Core Functions You Will Use

format() converts a number to a text string. round() limits the number to two decimal places. replace() or slice() with length() inserts commas at the correct positions. concat() joins all parts into a final string.

Steps to Build a Currency Format Formula

The following steps assume your number property is named “Price.” Adjust the property name to match your database.

  1. Create a formula property
    Open your database. Click the + icon in the last column header. Select “Formula” from the property type list. Name it “Formatted Price.”
  2. Round the number to two decimal places
    Enter this base formula: round(prop("Price") 100) / 100. Multiplying by 100, rounding, then dividing by 100 ensures two decimal precision.
  3. Convert the rounded number to text
    Wrap the previous expression with format(): format(round(prop("Price") 100) / 100). This produces a string like “1234.5”.
  4. Add a currency symbol
    Use concat() to prepend the symbol. For US dollars: concat("$", format(round(prop("Price") 100) / 100)). For euros: concat("€", format(round(prop("Price") 100) / 100)).
  5. Insert comma separators for thousands
    Add this logic to the formula. The full formula for USD with commas is:
    concat("$", if(length(format(round(prop("Price") 100) / 100)) > 3, concat(slice(format(round(prop("Price") 100) / 100), 0, length(format(round(prop("Price") 100) / 100)) - 3), ",", slice(format(round(prop("Price") 100) / 100), length(format(round(prop("Price") 100) / 100)) - 3)), format(round(prop("Price") 100) / 100))). This adds a comma before the last three digits if the integer part has more than three digits.
  6. Ensure two decimal places even for whole numbers
    Use format() with a conditional to add “.00” when the number has no decimal digits. Append concat(".", slice("00", length(slice(format(round(prop("Price") 100) / 100), find(".", format(round(prop("Price") 100) / 100)) + 1, length(format(round(prop("Price") 100) / 100)))))). This keeps the output consistent.

Common Mistakes to Avoid

Formula returns only the raw number without formatting

This happens when you forget to wrap the expression with format(). A formula that outputs a number cannot show currency symbols or commas. Always convert the final result to text.

Comma is inserted at the wrong position

The slice() function uses zero-based indexing. If your number has four integer digits, the comma should go after the first digit. Test with a value like 1234.56 to verify the comma appears after “1.”

Decimal places are truncated instead of rounded

Using round() after multiplying by 100 and dividing by 100 prevents truncation. Do not use floor() or ceil() unless you want to force rounding down or up.

Notion Formula Currency Format: Methods Compared

Item Basic format (USD) Full format with commas (USD)
Input value 1234.5 1234567.89
Output $1234.5 $1,234,567.89
Decimal precision May show one decimal Always two decimals
Comma placement None Every three digits from right
Formula complexity Low Medium

If your locale uses a period for thousands and a comma for decimals, swap the symbols in the formula. For example, European format: concat("€", replace(your_formatted_string, ".", ",")) after building the string with commas for thousands and a period for decimals.

Conclusion

You can now build a Notion formula that displays currency values with a symbol, commas, and two decimal places. Start by using the basic format with concat() and format(), then add the comma insertion logic for large numbers. For a cleaner formula, consider storing the rounded text in a helper property and referencing it in your final currency property. Test with edge cases like zero and negative numbers to confirm the formula handles them correctly.