【问题标题】:Unity - TMP Input Field : How to limit number of digits after decimal point in Decimal TypeUnity - TMP输入字段:如何限制十进制类型中小数点后的位数
【发布时间】:2022-08-19 04:02:34
【问题描述】:

有没有简单的方法来限制小数点后的位数,并将 TMP_InputField 设置为十进制类型?

例如,如果用户键入 12.347,我希望文本停止在 12.34

谢谢 !

    标签: unity3d input-field unity-ui


    【解决方案1】:

    您可以注册到事件onValidateInput,将字符串解析为浮点数,然后使用$"{value:0.##} 重新格式化它。

    【讨论】:

    • 谢谢 !!我在家的时候会试试这个。但是只有当我进入或离开该字段时它才会改变,所以我想在用户输入时“实时”限制它是不可能的?
    【解决方案2】:

    编辑:如果其他人正在寻找与我完全相同的东西,我通过这个小技巧成功了:

            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;
            }
    

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 2018-11-14
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      相关资源
      最近更新 更多