Java 在使用Android数据绑定时强制将点(“;”;)用作十进制分隔符
我正试图从API中格式化一个双精度字符,这样它只显示前2位小数。此外,我正在使用Java 在使用Android数据绑定时强制将点(“;”;)用作十进制分隔符,java,android,android-databinding,Java,Android,Android Databinding,我正试图从API中格式化一个双精度字符,这样它只显示前2位小数。此外,我正在使用数据绑定进行此操作。当我这样做时,它会起作用: android:text='@{String.format("%.2f", cartItem.totalPrice)}' 但是,这将使用逗号,作为十进制分隔符。当我试图强制它使用点作为十进制分隔符时,我无法构建项目,因为我得到了一个数据绑定错误。这就是我想做的: android:text='@{String.format(Locale.ROOT, "%.2f", ca
数据绑定
进行此操作。当我这样做时,它会起作用:
android:text='@{String.format("%.2f", cartItem.totalPrice)}'
但是,这将使用逗号,
作为十进制分隔符。当我试图强制它使用点
作为十进制分隔符时,我无法构建项目,因为我得到了一个数据绑定
错误。这就是我想做的:
android:text='@{String.format(Locale.ROOT, "%.2f", cartItem.totalPrice)}'
但是,这将使用逗号作为十进制分隔符
这里不能用逗号。此点不是十进制分隔符,而是有关输出精度()的格式说明符的一部分。因此,一旦获得输出,只需将
替换为,
如下:
android:text='@{String.format("%.2f", cartItem.totalPrice).replace(".", ",")}'
以逗号分隔符结束。实际上,输出是放置
,
,默认情况下,我需要将,
替换为,
,但是,多亏了您的回答,我这样做了。我假设您刚刚忘记导入区域设置。在数据部分尝试
。