Virgula care a umflat fiecare preț european de 100 de ori

Un parser de preț care elimina virgulele a citit 9,99 € din germană ca 999. Nimic nu s-a blocat, nimic nu părea greșit, iar modelul de venituri raporta în liniște cifre de o sută de ori mai mari.

Prețurile sunt singura intrare pentru care o eroare de ordin de mărime pare perfect plauzibilă pe un grafic. O aplicație cu abonament de $6,499 pe an este absurdă dacă vă opriți să vă gândiți, dar poate trece neobservată când parcurgeți rapid un panou.

Ce făcea codul

Parserul elimina separatorii de mii înainte de identificarea cifrelor, corect pentru engleză și greșit pentru majoritatea Europei. Magazinul german afișează 9,99 €, virgula este separator zecimal, iar eliminarea ei produce 999.

Deoarece modelul de venituri citește grila de prețuri din piața magazinului afișată pe ecran, deschiderea unei aplicații urmărite în fila germană îi furniza un preț de referință de 6,499 în loc de 44.36. O supraestimare de 147x, fără eroare, avertisment sau simptom vizibil.

Corecția și de ce detectarea regiunii era răspunsul greșit

Corecția evidentă este identificarea pieței magazinului și aplicarea convenției sale. Nu am procedat astfel, deoarece parserul primește și șiruri cu origine incertă, iar o identificare care revine silențios la engleză recreează eroarea într-o formă mai greu de găsit.

În schimb, separatorul zecimal este stabilit după poziție. Dacă apar și punctul, și virgula, cel mai din dreapta este separatorul zecimal: 1.234,56 și 1,234.56 sunt interpretate corect fără a ști țara de origine. Dacă apare doar unul, este separator de mii când îl urmează exact trei cifre și separator zecimal în celelalte cazuri.

Aceeași eroare, cu alt sufix

Apoi Indonezia. Apple afișează 829,000 de rupii ca "Rp 829ribu", unde ribu înseamnă o mie în indoneziană. Citit literal, numărul este 829 de rupii, aproximativ cinci cenți americani, ceea ce, față de prețul american de $69.99, ar fi fost publicat drept cea mai spectaculoasă descoperire de localizare de pe ecran.

Cuvintele care indică ordinul de mărime sunt acum gestionate. Dar tabelul lor nu poate fi complet, deoarece orice magazin poate afișa un cuvânt încă necunoscut nouă. De aceea există și un prag: un preț convertit sub 2% din piața de bază este ascuns ca nesigur, nu publicat. Cea mai ieftină piață reală pe care o măsurăm, Türkiye, se află la 5%, astfel încât protecția detectează erori de ordin de mărime fără să invalideze prețuri reale.

Asemănător

Blog · Studii de caz · Free ASO tools · Produse · Confidențialitate și termeni · AsoTheory