[TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
2 participantes
Página 1 de 1
[TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
Fala galera... vou mostrar uma maneira simples de fazer arredondamentos e deixar valores com muitos números depois da virgola bem curtos...
Para isto vou utilizar este script:
Ele é um simples cronometro, que começa em zero e vai crescendo conforme o tempo...
E eu mostro o seu resultado na tela através de um simples Label...
Básicamente, o que faz a variavel ser arredondada é este comando:
isto quer dizer que só aparecerão 2 números depois da vírgola...
se fosse assim:
apareceriam 4 números depois da vírgola, e assim por diante.
então, para fazer um arredondamento é simples, basta pegar o nome da variáve, seguido do comando, como no exemplo, e pronto :D
Para isto vou utilizar este script:
- Código:
using UnityEngine;
using System.Collections;
public class EXEMPLO : MonoBehaviour {
private float cronometro;
void Start (){
cronometro = 0;
}
void Update () {
cronometro += Time.deltaTime;
}
void OnGUI (){
GUI.Label (new Rect (10, 40, 100, 30), "TEMPO: " + cronometro.ToString("f2") + "s");
}
}
Ele é um simples cronometro, que começa em zero e vai crescendo conforme o tempo...
E eu mostro o seu resultado na tela através de um simples Label...
- Código:
GUI.Label (new Rect (10, 40, 100, 30), "TEMPO: " + cronometro.ToString("f2") + "s");
Básicamente, o que faz a variavel ser arredondada é este comando:
- Código:
.ToString("f2")
isto quer dizer que só aparecerão 2 números depois da vírgola...
se fosse assim:
- Código:
.ToString("f4")
apareceriam 4 números depois da vírgola, e assim por diante.
então, para fazer um arredondamento é simples, basta pegar o nome da variáve, seguido do comando, como no exemplo, e pronto :D
Última edição por MarcosSchultz em Ter Jun 07, 2016 9:16 pm, editado 1 vez(es)
Re: [TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
Esse sistema não funciona se for por UI?
porque estou fazendo assim e não trampa
porque estou fazendo assim e não trampa
- Código:
ForçaLvl.text = "" + LvlAtualF.ToString("f2");
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
Preciso ver o script todo
Re: [TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
Como estou usando visual estudio fica bom usar voids (Para minimizar as que não vou usar)
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class HabilidadesControl : MonoBehaviour {
//Força
public int ForçaTotal,LvlAtualF;
public float ForçaAtual,LvlMaxF;
public Image ForçaUI;
public Text ForçaLvl,ForçaExp,ForçaProximoExp;
public GameObject NivelMaxForça;
private bool ForçaMax;
//Agilidade
// Use this for initialization
void Start () {
ForçaTotal = 100;
ForçaAtual = 1;
LvlMaxF = 14;
LvlAtualF = 1;
NivelMaxForça.SetActive(false);
}
// Update is called once per frame
void Update () {
Força();
}
void Força()
{
float preenchimentoForça = (ForçaAtual / ForçaTotal) / 1;
ForçaUI.fillAmount = Mathf.SmoothStep(ForçaUI.fillAmount, preenchimentoForça, 20 * Time.deltaTime);
ForçaExp.text = ForçaAtual + "";
ForçaLvl.text = "" + LvlAtualF.ToString("f2");
ForçaProximoExp.text = "" + LvlAtualF;
if (ForçaAtual <= ForçaTotal && Input.GetKey(KeyCode.N) && LvlAtualF <= LvlMaxF)
{
ForçaAtual += Time.deltaTime / 0.01f;
}
if (ForçaAtual >= 98 && ForçaMax == false)
{
ForçaAtual = 0;
LvlAtualF++;
}
if (LvlAtualF >= 15)
{
ForçaMax = true;
}
else if (LvlAtualF <= 14)
{
ForçaMax = false;
}
if (LvlAtualF >= 15 && ForçaMax == true)
{
ForçaMax = true;
NivelMaxForça.SetActive(true);
ForçaAtual = 100;
}
else
{
NivelMaxForça.SetActive(false);
}
}
}
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
tente antes jogar para uma string, tipo:
Não faz muito sentido, más vai que funciona.
Não posso analizar melhor por que to na faculdade, pelo celular. ai é meio difícil.
- Código:
string texto = "" + LvlAtualF.ToString("f2");
ForçaLvl.text = texto;
Não faz muito sentido, más vai que funciona.
Não posso analizar melhor por que to na faculdade, pelo celular. ai é meio difícil.
Re: [TUTORIAL] Deixar variaveis do tipo float ou double com menos casas decimais
Ei daquele jeito tava funcionando , e o burrão aqui ,colocou no lugar errado, mais vlw de qualquer jeito marcos :D
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Tópicos semelhantes
» Diminuir o número de casas decimais de uma variável float
» [TUTORIAL] Limitar casas decimais sem arredondar
» Duvida limitar casas decimais
» [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
» [Duvida] Como Salvar variáveis (int,float por exemplo) para sempre
» [TUTORIAL] Limitar casas decimais sem arredondar
» Duvida limitar casas decimais
» [TUTORIAL] Acessar variáveis de outros scripts, variáveis estáticas (javaScript)
» [Duvida] Como Salvar variáveis (int,float por exemplo) para sempre
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos