, others 'KSh') without requiring manual configuration.

Interactive Sample Data

productpricediscount
Solar Panel$4,500.0010%
InverterKSh 8,2005%

How this tool works

Numbers exported from accounting software, e-commerce platforms, and CRMs are often formatted for human readability with currency symbols, thousands separator commas, and percentage signs. These formatted strings cannot be used in arithmetic or sorted numerically without first stripping the formatting. DataFix strips currency symbols (any prefix up to the first digit), thousands separator commas, trailing percentage signs (converting to decimal fraction if requested), and parenthetical negative notation common in accounting exports. Numerical columns exported from accounting software often contain currency symbols, commas, trailing spaces, or accounting brackets for negatives [e.g. (1,250.00)], causing spreadsheet programs to classify them as text strings. DataFix strips non-numeric characters, parses negative notation, and converts string columns into pure numeric values. Stripping non-numeric punctuation, currency symbols, and accounting parentheses converts text representations of numbers into true floating-point values for mathematical processing. Converting text-formatted numbers into true numeric values resolves common spreadsheet errors where numbers stored as text cannot be summed or plotted in charts. Our parser strips currency signs, accounting brackets for negatives, thousand-separator commas, and trailing whitespace, producing clean floating-point numbers. Stripping currency signs, accounting brackets, and comma separators converts string values into true numeric types. Clean numeric columns can be plotted in charts and summed in spreadsheet formulas without conversion errors. European number formatting support seamlessly parses commas as decimal points (such as '1.250,50') into standard IEEE 754 double-precision floating-point numbers.

Things that usually go wrong

Edge cases we tested

🧪 Value '0.00' stored as text

Converted to numeric 0.0, not treated as blank.

🧪 Mixed column with some already-numeric and some text values

Already-numeric values preserved; text values converted.

🧪 European decimal comma ('4.500,00' = four thousand five hundred)

European locale detected from comma-as-decimal pattern; converted to 4500.00.

Frequently Asked Questions

What prefixes and suffixes are stripped?

$, £, €, ₦, ₹, %, commas as thousands separators, and leading/trailing spaces.

Are negative numbers handled?

Yes — both '-42' and '(42)' accounting-format negatives are converted to -42.

Related tools

Clean

Split Full Name into First and Last

Separate full name columns into dedicated first_name and last_name columns in CSV and Excel spreadsheets.

Open Tool →
Clean

Combine First and Last Name

Merge separate first and last name columns into a single clean full_name column, trimming extra spaces.

Open Tool →
Clean

Remove Duplicate Rows

Eliminate duplicate rows across your entire dataset or based on specific unique key columns.

Open Tool →
, others 'KSh') without requiring manual configuration.","workedExample":{"input":"product,price\nSolar Panel,\"$4,500.00\"\nInverter,\"KSh 8,200\"","output":"product,price\nSolar Panel,4500.00\nInverter,8200.00","explanation":"Currency symbols and comma separators stripped; numeric values preserved."},"edgeCasesTested":[{"case":"Value '0.00' stored as text","outcome":"Converted to numeric 0.0, not treated as blank."},{"case":"Mixed column with some already-numeric and some text values","outcome":"Already-numeric values preserved; text values converted."},{"case":"European decimal comma ('4.500,00' = four thousand five hundred)","outcome":"European locale detected from comma-as-decimal pattern; converted to 4500.00."}],"alternativeMethod":{"tool":"Python","code":"import csv, re\nwith open('data.csv') as f:\n rows = list(csv.DictReader(f))\nfor row in rows:\n price = re.sub(r'[^0-9.]', '', row['price'])\n row['price'] = float(price) if price else None","notes":"re.sub removes all non-digit, non-dot characters. Adjust for European decimals."},"sampleFile":{"filename":"sample-prices.csv","content":"product,price,margin\nSolar Panel,\"$4,500.00\",\"(450.00)\"\nInverter,\"KSh 8,200\",25%\nBattery,\"€3,100.50\",18%"},"testInput":[{"product":"Solar Panel","price":"$4,500.00","discount":"10%"},{"product":"Inverter","price":"KSh 8,200","discount":"5%"}],"expectedOutput":[{"product":"Solar Panel","price":"$4,500.00","discount":"10%"},{"product":"Inverter","price":"KSh 8,200","discount":"5%"}],"howToSteps":["Upload your CSV.","Select the column with numbers stored as text.","Click 'Convert to Numbers'. Commas, currency symbols, and percent signs are stripped, and the remaining value is parsed as a float.","Download."],"thingsThatGoWrong":["Values like '1,234.56' (comma as thousands separator) are converted to 1234.56. Values like '1.234,56' (European format) need the delimiter swapped first.","Non-numeric values that can't be parsed are left unchanged."],"faqs":[{"q":"What prefixes and suffixes are stripped?","a":"$, £, €, ₦, ₹, %, commas as thousands separators, and leading/trailing spaces."},{"q":"Are negative numbers handled?","a":"Yes — both '-42' and '(42)' accounting-format negatives are converted to -42."}],"beforeAfter":{"before":"revenue\n$4,500.00\n£3,200.50","after":"revenue\n4500.0\n3200.5"},"whyItMatters":"Excel and CSV exports often format currency as '$1,234.56'. Python and SQL see this as a string and refuse to sum it. Stripping formatting is required before numeric analysis.","proTips":["After converting, use Round Numbers to normalise decimal places.","Run Validate CSV after conversion to check no unexpected values slipped through as text."],"edgeCases":["Blank cells are converted to 0 by default (configurable to empty).","Values that contain only a currency symbol (no number) are left as the original string."]};