You want to display numbers in a Notion database as currency values with a custom symbol, decimal places, and thousands separators. The default property types in Notion do not offer a dedicated currency format setting. This article explains how to use the Notion formula format() function to convert raw numbers into a clean, custom currency string.
The format() function in Notion formulas converts a number into a string with localized formatting, including commas and decimal points. By combining format() with string concatenation, you can prepend any currency symbol and control the number of decimal places. This approach works for any currency symbol, such as $, €, £, ¥, or even custom text like USD.
You will learn the exact formula syntax, how to handle rounding, and what to do when the default formatting does not match your needs. The instructions apply to any Notion plan, including Free, Plus, Business, and Enterprise.
Key Takeaways: Using format() for Currency in Notion
- Formula property with format(prop(“Price”)): Converts a number into a string with commas and two decimal places by default.
- Concatenation with “$”: Prepends a dollar sign or any other symbol to the formatted number to create a currency display.
- round() and divide(): Adjust decimal precision when the source number is in cents or needs rounding before formatting.
How the Notion format() Function Handles Numbers
The format() function in Notion formulas takes a number as input and returns a string. Notion automatically applies the user’s locale settings to determine the thousands separator and decimal separator. For example, a user in the United States sees commas for thousands and a period for decimals, while a user in Germany sees periods for thousands and commas for decimals.
When you pass a number like 1234.5 to format(), Notion returns the string “1,234.5” for US locale users. The function does not add trailing zeros. If you need exactly two decimal places, you must round the number first or use additional string manipulation.
The formula property must be of type Formula. You can reference any Number property in the same database. The output of the formula is a text string, so you cannot use it in further numeric calculations. For calculations, always use the original Number property.
Prerequisites for Using format()
Before writing the formula, ensure you have a Number property in your Notion database. Create a new Formula property by clicking the + icon in the database header, selecting Formula, and then entering the formula in the editor. No other software or plugin is required.
Steps to Create a Custom Currency Display with format()
- Create a Number property for the raw value
Add a Number property to your database. Name it “Price” or “Amount”. Enter numeric values without any currency symbol. For example, enter 29.99 for $29.99. - Add a Formula property
Click the + button in the database header. Select Formula from the property type list. Name it “Display Price” or “Currency”. - Enter the basic format formula
In the formula editor, type:format(prop("Price")). This converts the number to a string with locale formatting. Click Done. The column now shows the number with commas but no currency symbol. - Add a currency symbol with concatenation
Replace the formula with:"$" + format(prop("Price")). The dollar sign appears before the formatted number. For other symbols, replace “$” with “€”, “£”, “¥”, or any text like “USD “. - Force two decimal places using round()
If your numbers have varying decimal places, use:"$" + format(round(prop("Price") 100) / 100). This rounds the number to two decimal places before formatting. For three decimal places, replace 100 with 1000. - Handle cents stored as integers
If your source data stores prices in cents (e.g., 2999 for $29.99), divide before formatting:"$" + format(prop("Price") / 100). Combine with rounding:"$" + format(round(prop("Price") / 100 100) / 100). - Add a space between symbol and number
Insert a space in the concatenation:"$ " + format(prop("Price")). This displays “$ 1,234.56” instead of “$1,234.56”.
If the Currency Display Still Has Issues
Format shows no decimal places for whole numbers
format(29) returns “29”, not “29.00”. To force two decimal places, use: "$" + format(round(prop("Price") 100) / 100). This ensures every value has exactly two decimal places in the string.
Thousands separator is wrong for your locale
Notion uses your account locale setting, not the database locale. Go to Settings & Members > Language & Region to change your region. Alternatively, use a custom formula that replaces separators with replace(). Example: replace(format(prop("Price")), ",", ".") changes commas to periods.
Formula returns an error for empty cells
If the Number property is empty, format() returns an empty string. To show a placeholder like “$0.00”, use: if(empty(prop("Price")), "$0.00", "$" + format(round(prop("Price") 100) / 100)).
Negative values show a minus sign before the symbol
Notion places the minus sign before the concatenated string. To show parentheses for negative values, use: if(prop("Price") < 0, "($" + format(abs(round(prop("Price") 100) / 100)) + ")", "$" + format(round(prop("Price") 100) / 100)).
Notion Formula Methods for Custom Currency Display
| Method | Basic format() | format() with round() |
|---|---|---|
| Syntax | "$" + format(prop("Price")) | "$" + format(round(prop("Price") 100) / 100) |
| Decimal places | As entered (may vary) | Always two |
| Thousands separator | Automatic based on locale | Automatic based on locale |
| Handles empty cells | Shows empty string | Shows empty string |
| Best for | Quick display when decimals are consistent | Financial data requiring exact two decimal places |
The format() function alone is simpler but does not enforce decimal precision. The round() combination adds reliability. Choose based on whether your source data already has consistent decimal places.
You can now display numbers in any Notion database as formatted currency with the symbol and decimal precision you need. Start by creating a Formula property and testing the basic concatenation with your currency symbol. For more advanced formatting, explore the replace() function to customize the thousands separator or the slice() function to truncate long decimals. Use the prop() reference to pull data from other properties and combine multiple formatting rules in a single formula.