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

使用PlayerPrefs存储的高分显示带小数位,如何删除小数点后的数字?

问题根因

你使用float类型存储整数分数,单精度浮点数本身存在固有精度误差,读写过程中很容易出现尾数位偏差,才会出现整数分数读取后附带多余小数的情况。

解决方案

方案1:修改存储逻辑(优先推荐,从根源避免问题)

游戏分数本身为整数时,无需使用SetFloat存储,直接更换为SetInt存储整数值即可彻底杜绝小数问题:

  • 存储时代码示例:
    PlayerPrefs.SetInt("HighScore", 你的分数整数值);
  • 读取时代码示例:
    int highScore = PlayerPrefs.GetInt("HighScore", 0);
    读取后直接是整数类型,无需额外处理即可正常展示。

方案2:调整显示格式化逻辑(适配必须保留float存储的场景)

如果业务逻辑要求必须使用float类型存储,读取后可以通过取整或字符串格式化消除小数展示:

  • 方法一:对读取的float值取整后展示
    使用Mathf.RoundToInt()做四舍五入取整,或用(int)强转直接截断小数部分,示例代码:
float rawScore = PlayerPrefs.GetFloat("HighScore", 0f);
int displayScore = Mathf.RoundToInt(rawScore);
scoreText.text = displayScore.ToString();
  • 方法二:字符串输出时指定无小数格式
    无需转换类型,直接在ToString方法中指定保留0位小数的格式即可,示例代码:
    scoreText.text = rawScore.ToString("F0");
    格式参数F0代表输出时保留0位小数,会自动对数值做四舍五入处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:48:02