【问题标题】:How do I round a double to 1 decimal place in unity?如何将双精度数舍入到小数点后一位?
【发布时间】:2021-09-11 07:58:37
【问题描述】:
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameManager : MonoBehaviour
{

    public int cookiesPerClick;
    public int ClickUpgrade1Level = 0;
    public double cookies;
    public double ClickUpgrade1 = 50;
    public Text cookieText;
    public Text cookiePerClickText;
    public Text ClickUpgradeText;
    public Text ClickUpgradePriceText;
    // Start is called before the first frame update
    void Start()
    {
        cookies = 0;
        cookiesPerClick = 1;
    }

    // Update is called once per frame
    void Update()
    {
        cookieText.text = "Cookies: " + cookies;
        cookiePerClickText.text = "Cookies Per Click: " + cookiesPerClick;
        ClickUpgradeText.text = "Level: " + ClickUpgrade1Level;
        ClickUpgradePriceText.text = "Price: " + ClickUpgrade1;
    }

    public void MakeCookie()
    {
        cookies += cookiesPerClick;
    }

    public void ClickUpgradeOne()
    {
        if (cookies >= ClickUpgrade1)
        {
            cookiesPerClick += 1;
            cookies -= ClickUpgrade1;
            ClickUpgrade1 *= 1.17;
            ClickUpgrade1Level += 1;
        }
        else
        {
            Debug.Log("Poor!");
        }
    }
}

在对 ClickUpgrade1 进行几次升级后,它会开始如下所示: Cookies

升级价格也是如此,只是想知道如何将其四舍五入以使其更清洁,提前谢谢您。

【问题讨论】:

  • Math.Round() 不适合您?如果是,请详细说明原因?
  • 适用于任何语言的故障保险:*10, round, /10

标签: c# unity3d


【解决方案1】:

使用 F1 说明符将 double 格式化为字符串:

cookieText.text = "Cookies: " + cookies.ToString("F1");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2011-08-08
    相关资源
    最近更新 更多