我如何使我的定时器去小数点后两位?

问题描述 投票:0回答:1

嗨,我想知道,如果有人知道如何使这个定时器只做小数点后两位。目前,它显示的小数点后6位。我正在做一个计时器,从0开始上升,看看玩家需要多长时间来完成一个课程。如果你知道如何使定时器也进行当你死了,并转移到下一个场景,这将是感激。再次感谢。

以下是我使用的代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Timer : MonoBehaviour
{
    public float timeStart = 0;
    public Text textBox;

    // Start is called before the first frame update
    void Start()
    {
        PlayerPrefs.SetInt("Second", 59);
        PlayerPrefs.SetInt("Minute", 9);
        StartCoroutine("bekle1sn");
        textBox.text = timeStart.ToString();

    }

    // Update is called once per frame
    void Update()
    {
        timeStart += Time.deltaTime;
        textBox.text = (timeStart).ToString("F2");
        textBox.enabled = true;
        textBox.text = PlayerPrefs.GetInt("Minute") + ":" + PlayerPrefs.GetInt("Second").ToString();

    }
    IEnumerator bekle1sn()
    {

        for (int iCnt = 0; iCnt < 600; iCnt++)
        {
            yield return new WaitForSeconds(1); //Bekleme
            PlayerPrefs.SetInt("Second", PlayerPrefs.GetInt("sureSaniye") + 1);



            if (PlayerPrefs.GetInt("Second") + 1 == 0)
            {
                PlayerPrefs.SetInt(("Second"), 0);
                PlayerPrefs.SetInt("Minute", PlayerPrefs.GetInt("Minute") + 1);

                if (PlayerPrefs.GetInt("Minute") + 1 == 0)
                {
                    // finish the screen  


                }
            }
        }
    }
}

c# unity3d
1个回答
0
投票

我最近做了一个这样的项目.我的是从10分钟开始倒计时.你可以自己编辑这段代码,并把它转移到下一个场景。

 string fmt = "00.##";
      start(){
          PlayerPrefs.SetInt ("Second", 59);
          PlayerPrefs.SetInt ("Minute", 9);
          StartCoroutine("bekle1sn");
        }

    void Update()
        {

                sureTextTMP.enabled = true;
                sureTextTMP.text = PlayerPrefs.GetInt("Minute") + ":" + PlayerPrefs.GetInt("Second").ToString(fmt);

        }




IEnumerator bekle1sn()
    {

 for (int iCnt = 0; iCnt < 600; iCnt++)
        {
              yield return new WaitForSeconds(1); //Bekleme
             PlayerPrefs.SetInt("Second", PlayerPrefs.GetInt("Second") - 1);



            if (PlayerPrefs.GetInt("Second") - 1 == 0)
            {
                PlayerPrefs.SetInt(("Second"), 59);
                PlayerPrefs.SetInt("Minute", PlayerPrefs.GetInt("Minute") - 1);
                if (PlayerPrefs.GetInt("Minute") - 1 == 0)
                {
    // finish the screen  


                }
            }
           }
    }

0
投票

你可以使用String类的格式化功能,像这样。

textBox.text = (timeStart).ToString("F2");

这将会把它四舍五入到你需要的两位小数。

textBox.text = (timeStart).ToString("F0");

这将把它四舍五入到一个整数


0
投票

使用 标准数字格式字符串:

float f = 12.4435345f;
f.ToString("F2"); // 12.44
© www.soinside.com 2019 - 2024. All rights reserved.