Input string was not in a correct format 🟪 .NET

System.FormatException: Input string was not in a correct format

int.Parse/decimal.Parse/Convert.ToInt32 got a string that isn’t a valid number — empty, contains text, or uses another culture’s decimal separator.

Seen on: .NET

Meaning

“1,5” fails under en-US, “1.5” fails under de-DE. Empty strings and whitespace also throw. Use TryParse and an explicit CultureInfo.

Common causes

  • Empty or non-numeric string
  • Culture-specific decimal/thousand separators
  • Currency symbols or spaces
  • Parsing user input without validation

⚡ Quick fix

  1. Use int.TryParse / decimal.TryParse
  2. Pass CultureInfo.InvariantCulture for machine data
  3. Trim and validate input

Detailed fix by platform

C#

  1. csharp
    if (!decimal.TryParse(text, NumberStyles.Number, CultureInfo.InvariantCulture, out var amount))
        return BadRequest("Invalid amount");

How to diagnose

  1. Value — Exact string
  2. Culture — CurrentCulture on server

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.