使用InputField时处理输入的数字型字符串千分位自动添加逗号,且自动保留两位有效数字
输入:123 输出:123.00
输入:12345 输出:12,345.00
代码非常简单
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”表示固定保留两位小数。
因此,当使用这种格式化字符串时,数字将按照每三位添加一个逗号的千分位分隔符,并且始终保留两位小数。这种格式化字符串通常用于显示货币、数字金额或其他需要固定小数位数和千分位分隔符的情况。