Maison > Article > développement back-end > Comment conserver le rapport entre les valeurs lors de la conversion de plages de numéros ?
Préserver le ratio lors de la conversion de plages de nombres
Dans le domaine de la manipulation de données, il est souvent nécessaire de convertir les valeurs d'une plage à une autre tout en maintenir leurs ratios relatifs. Cela peut être particulièrement utile lors de la compression de données ou du mappage de valeurs entre différentes échelles.
Considérons la tâche de conversion d'une plage de valeurs de -16 000,00 à 16 000,00 en une plage entière plus gérable de 0 à 100. Nous voulons nous assurer que la conversion préserve le rapport entre les valeurs d'origine.
La clé pour parvenir à la préservation de ce rapport réside dans la formule suivante :
NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin
où :
Pour le décomposer davantage :
Cette formule garantit que le rapport entre les valeurs de l'ancienne plage est préservé dans la nouvelle plage.
Par exemple, si OldValue est 8 000,00, OldMin est -16 000,00, OldMax est 16 000,00, NewMax est 100 et NewMin est 0. , NewValue serait calculé comme suit :
NewValue = (((8000.00 - (-16000.00)) * (100 - 0)) / (16000.00 - (-16000.00))) + 0 = (((24000.00) * (100)) / (32000.00)) + 0 = 75.00
Ainsi, 8000,00 dans l'ancienne plage correspond à 75,00 dans la nouvelle plage, en préservant le rapport relatif entre ces valeurs. Cette formule peut être davantage personnalisée pour gérer les cas où l'ancienne plage est nulle ou la nouvelle plage souhaitée ne commence pas à zéro.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!