You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何将double类型数值保留1位小数 优化游戏UI显示效果

解决方案

方案1:仅UI显示格式化(不改动数值计算逻辑,推荐)

这种方式不会影响原有升级价格计算的精度,只在UI展示时做格式化处理,避免显示多余小数:
修改Update方法中的字符串拼接逻辑,使用C#的字符串格式化语法:

void Update()
{
    // F1代表保留1位小数,F0代表保留0位即整数显示
    cookieText.text = "Cookies: " + cookies.ToString("F1");
    cookiePerClickText.text = "Cookies Per Click: " + cookiesPerClick;
    ClickUpgradeText.text = "Level: " + ClickUpgrade1Level;
    // 升级价格也可以按需选择F0/F1格式
    ClickUpgradePriceText.text = "Price: " + ClickUpgrade1.ToString("F1");
}

方案2:数值本身向下取整(消除数值存储中的小数位)

如果你希望数值本身就没有小数,避免后续计算出现精度问题,可以在数值更新时做向下取整处理:

  • 在升级逻辑中,价格计算完成后调用Math.Floor向下取整
  • 饼干数量如果需要取整也可以在增减时做对应处理
    修改后的代码示例:
public void ClickUpgradeOne()
{
    if (cookies >= ClickUpgrade1)
    {
        cookiesPerClick += 1;
        cookies -= ClickUpgrade1;
        // 升级价格计算后向下取整为整数
        ClickUpgrade1 = Math.Floor(ClickUpgrade1 * 1.17);
        ClickUpgrade1Level += 1;
    }
    else
    {
        Debug.Log("Poor!");
    }
}

如果需要饼干数量也向下取整,可以在MakeCookie方法和扣减饼干的位置都加上Math.Floor处理,不需要小数的话也可以直接把cookies改为int类型。

两种方案按需选择即可:如果需要保留价格计算的原始精度,选方案1;如果希望所有数值都是整数,没有隐藏小数,选方案2。

内容的提问来源于stack exchange,提问作者If3y

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:18:03