Je calcule un numéro qui devrait être la moitié de l'axe sur une barreau.
Le numéro calculé est le plus petit possible (en prenant les pixels disponibles, etc. en compte). P>
maintenant Je veux arrondir ce nombre jusqu'à la puissance suivante de 10. p>
Voici comment je calculer le plus petit étage possible: p> je vais donner Quelques exemples pour une meilleure compréhension:
Numéro calculé: 6 - Numéro I WANT: 10 P> Numéro calculé: 55 - Numéro I WANT: 100 P> Numéro calculé: 355 - Numéro I WANT: 1000 P> Numéro calculé: 755 - Numéro I WANT: 1000 P> Numéro calculé: 5755 - Numéro I WANT: 10000 P> J'ai donc besoin de calcul qui convient à tous ces cas. p> p>
4 Réponses :
Je pense que vous pouvez le faire avec Essayez-le en ligne p> p> math.log code>:
Utilisez ceci:
int result = (int)Math.Pow(10,Math.Round(Math.Log(n,10) - Math.Log(5.5,10) + 0.5));
Math.Pow(10,(int)Math.Ceiling(Math.Log10(number))); Match your example
Vous pouvez prendre le journal de base 10 et l'arrondir jusqu'au chiffre supérieur supérieur et faire un maths.Pow par conséquent.
10 100 1000 10000 100000