【问题标题】:Xamarin Forms Android keyboard decimal separatorXamarin Forms Android 键盘小数分隔符
【发布时间】:2019-04-29 17:47:08
【问题描述】:

我使用这段代码来转换值:

v = double.Parse(entry1.Text, CultureInfo.InvariantCulture);

在 iOS 中没关系 - 我输入 3,2 并将其转换为 3.2

但在 Android 中,我无法在数字之间输入点 - 只能使用逗号 但是当我输入 3,2 时,它会将其转换为 32!设备语言 - 俄语。 请帮我!谢谢!

【问题讨论】:

    标签: c# android xamarin.forms


    【解决方案1】:

    您可能已将视图属性设置如下:

    <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number" />
    

    android:inputType="number" 转换为 android:inputType="numberDecimal"

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal" />
    

    已编辑: 或者您可以尝试从值中删除逗号。

    try { 
        doubleValue = Double.parseDouble(s.toString().replace(',', '.')); 
    } catch (NumberFormatException e) { 
        //Error 
    }
    

    【讨论】:

    • 我使用 Xamarin Forms,而不是 Android Studio
    • 通常我不在 Xamarin 上工作,但是对于您的声明 但在 Android 中,我不能在数字之间输入点,就像我们遇到问题时一样,这意味着某些属性阻止键盘输入点,这意味着它可能只应设置为 number,但对于接受点,它应设置为 numberDecimal。这可能是可能的。
    • 当设备语言是英语时,没关系
    • 好的,那么你应该试试这样的补丁 -> try { doubleValue = Double.parseDouble(s.toString().replace(',', '.')); } catch (NumberFormatException e) { //Error }
    • 不,没有帮助
    【解决方案2】:
    V = double.parse(entry1.Text.Replace(',', '.'), CultureInfo.InvariantCulture);
    

    【讨论】:

    • 请不要忘记标记您的答案,它将帮助其他有类似问题的人。
    猜你喜欢
    • 2016-03-04
    • 2010-11-13
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2012-06-16
    • 2014-01-28
    • 2018-12-16
    • 2020-06-01
    相关资源
    最近更新 更多