Ik heb de oplossing gevonden:
Het is (oude) mysql bug: https://bugs.mysql.com/bug.php?id=61691
Ik heb de regel verandert naar:
$query->set( 'meta_type', 'DECIMAL(20,2)' );
Ik ben nu iets verder ik heb namelijk de volgende regel toegevoegd:
$query->set( 'meta_type', 'decimal' );
Echter als ik nu minprice op 10 zet en maxprice op 20
Krijg ik ook resultaten als 9,86 en 20,30
Maar deze 2 horen er uiteraard niet bij.
Zet ik hem op 10.50 tot 20 dan verdwijnt wel alles voor 10,50 zoals het moet maar die van 20,30 verdwijnt niet.