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

Unity中如何限制double变量仅显示两位小数且不四舍五入?

Unity中Double变量保留两位小数且不四舍五入的实现方法

这里提供几种可靠的实现方式,根据你的使用场景选择即可:

1. 数学截断法(推荐用于需要数值结果的场景)

通过数学运算直接截断小数部分,避免四舍五入:

public double nos = 17.2369;
double truncatedValue = Math.Truncate(nos * 100) / 100;
// 结果为 17.23

注意:使用Math.Truncate而非Math.Floor,因为Floor会对负数向下取整(比如-17.2369用Floor会得到-17.24),而Truncate直接截断小数部分,负数处理也符合需求(-17.2369会得到-17.23)。

2. 字符串处理法(适合直接用于UI显示)

如果只需要将结果转为字符串展示,可以直接对字符串进行截取:

public double nos = 17.2369;
string displayText;

// 使用固定区域格式避免小数点分隔符差异
string numStr = nos.ToString(System.Globalization.CultureInfo.InvariantCulture);
if (numStr.Contains("."))
{
    string[] parts = numStr.Split('.');
    // 确保小数部分至少两位,不足补0
    string decimalPart = parts[1].PadRight(2, '0').Substring(0, 2);
    displayText = $"{parts[0]}.{decimalPart}";
}
else
{
    displayText = $"{numStr}.00";
}
// displayText 结果为 "17.23"

3. Unity UI显示直接处理

如果是给Text组件赋值,可以结合上面的方法一步到位:

// 假设你已经获取了Text组件的引用
Text displayText;
double nos = 17.2369;

double truncated = Math.Truncate(nos * 100) / 100;
displayText.text = truncated.ToString("F2");
// 或者直接用字符串处理后的结果赋值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:40:02