我有一个看起来像这样的ViewModel:
public class OrderViewModel {
double price = 23748.89;
}
以及将OrderViewModel绑定到的布局:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="order"
type="com.example.viewmodel.OrderViewModel"/>
</data>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{@string/price_format(order.price)}"/>
</LinearLayout>
</layout>
使用的格式化字符串如下所示:
<string name="price_format">%+.2f $</string>
很好地添加$
符号并将浮点表示减少为2位小数。
结果看起来像
1234.89
现在我想用逗号替换小数点并添加千位分隔符,使我的价格看起来像
1.234,89
我可以单独使用XML格式化字符串吗?还是必须在java代码(我的ViewModel)中进行格式化?
答案 0 :(得分:5)
尝试以下格式字符串:
%,.2f $
根据你自己的发现:
取决于设备的区域设置(在本例中为德语), 应自动应用所需的格式。
对于德语区域设置,这将是1.234,89 $
,而对于英国,则为1,234.89 &