【发布时间】:2022-08-19 04:02:34
【问题描述】:
有没有简单的方法来限制小数点后的位数,并将 TMP_InputField 设置为十进制类型?
例如,如果用户键入 12.347,我希望文本停止在 12.34
谢谢 !
标签: unity3d input-field unity-ui
有没有简单的方法来限制小数点后的位数,并将 TMP_InputField 设置为十进制类型?
例如,如果用户键入 12.347,我希望文本停止在 12.34
谢谢 !
标签: unity3d input-field unity-ui
您可以注册到事件onValidateInput,将字符串解析为浮点数,然后使用$"{value:0.##} 重新格式化它。
【讨论】:
编辑:如果其他人正在寻找与我完全相同的东西,我通过这个小技巧成功了:
if (_hasComa)
{
string[] charAfterComa = _inputField.text.Split(",");
string strAfterComa = charAfterComa[1];
for (int i = 0; i < strAfterComa.Length; i++)
{
if (i >= 2)
{
int index = strAfterComa.LastIndexOf(strAfterComa[i]);
if (index >= 0)
strAfterComa = strAfterComa.Substring(0, index);
}
}
_inputField.text = charAfterComa[0] + ',' + strAfterComa;
}
【讨论】: