Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- static class Fraction {
- //Numero maximo de vezes que o while vai rodar, se deixar muito grande fica pesado e se deixar infinito PODE travar
- private const int maxItr = 1500;
- //Função pra mandar em fração
- public static string ToFraction(this float value) {
- //Valor de cima da fração
- var upValue = value;
- //Valor de baixo
- var downValue = 1;
- //Enquanto o valor de cima tiver virgula...
- while(!Mathf.Approximately(upValue, Mathf.Ceil(upValue))) {
- //Adiciona mais o valor no valor de cima
- upValue += value;
- //E aumenta o valor de baixo
- downValue++;
- //Se passar de 1500 vezes retorna o valor pq a fração vai ficar zoada
- if(downValue > maxItr)
- return value.ToString();
- }
- //Se o valor de baixo for 1 ele é desnecessário
- if(downValue == 1)
- return value.ToString();
- //Retorna a string bonitinha
- return upValue + "/" + downValue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement