Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在使用Android数据绑定时强制将点(“;”;)用作十进制分隔符_Java_Android_Android Databinding - Fatal编程技术网

Java 在使用Android数据绑定时强制将点(“;”;)用作十进制分隔符

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

我正试图从API中格式化一个双精度字符,这样它只显示前2位小数。此外,我正在使用
数据绑定
进行此操作。当我这样做时,它会起作用:

android:text='@{String.format("%.2f", cartItem.totalPrice)}'
但是,这将使用逗号
作为十进制分隔符。当我试图强制它使用点
作为十进制分隔符时,我无法构建项目,因为我得到了一个
数据绑定
错误。这就是我想做的:

android:text='@{String.format(Locale.ROOT, "%.2f", cartItem.totalPrice)}'
但是,这将使用逗号作为十进制分隔符

这里不能用逗号。此点不是十进制分隔符,而是有关输出精度()的格式说明符的一部分。因此,一旦获得输出,只需将
替换为
如下:

android:text='@{String.format("%.2f", cartItem.totalPrice).replace(".", ",")}'

以逗号分隔符结束。

实际上,输出是放置
,默认情况下,我需要将
替换为
,但是,多亏了您的回答,我这样做了。我假设您刚刚忘记导入区域设置。在数据部分尝试