使用InputField时处理输入的数字型字符串千分位自动添加逗号,且自动保留两位有效数字
输入:123 输出:123.00
输入:12345 输出:12,345.00
代码非常简单
cs
using UnityEngine;
using TMPro;
public class NumberFormatter : MonoBehaviour
{
private TMP_InputField inputField;
private void Start()
{
inputField = GetComponent<TMP_InputField>();
inputField.onEndEdit.AddListener(FormatNumber);
}
private void FormatNumber(string value)
{
if (!string.IsNullOrEmpty(value) && double.TryParse(value, out double number))
{
inputField.text = number.ToString("#,##0.00");
}
}
}
固定的格式化字符串"#,##0.00"是一种常用的数字格式化模式,其含义如下:
"#"代表数字占位符,表示位置上可能是数字,如果没有数字则不显示。
","表示千分位符号,用来为数字添加逗号分隔符。
"0"表示必须有数字占位符,如果没有数字则显示为零。
"."表示小数点。
"00"表示固定保留两位小数。
因此,当使用这种格式化字符串时,数字将按照每三位添加一个逗号的千分位分隔符,并且始终保留两位小数。这种格式化字符串通常用于显示货币、数字金额或其他需要固定小数位数和千分位分隔符的情况。