When MaxQuant is run with a wrong locale (i.e. the decimal separator is not a '.', but a ','), then MaxQuant results are plainly wrong and broken. The can be detected by, e.g. checking for negative charge annotation
checkEnglishLocale(df_evd)
Evidence table from which we only need the 'charge' column