jos*_*ick 5 android decimalformat right-to-left
我正在尝试支持左语言的RTL,并且正在测试阿拉伯语(我对此一无所知)。
负号/正号应该位于数字的右侧还是左侧?我认为应该在左侧,但是当我使用Android的DecimalFormat将数字放入设备设置的语言环境中时,该符号会显示在右侧。
有没有人遇到过这种情况,知道如何解决?我能想到的最好是,如果它是负数,则用括号将其打印出来,这应该可以解决但不是理想的情况。
编辑
抱歉,代码总是有帮助的。如果我打印以下内容(经度为负):
DecimalFormat coord_df = new DecimalFormat("#.000000");
coord_df.format(loc.getLongitude())
Run Code Online (Sandbox Code Playgroud)
像这样印
##,######-
Run Code Online (Sandbox Code Playgroud)
#号是阿拉伯数字(如此处显示在东部阿拉伯行上的数字:http : //en.wikipedia.org/wiki/Eastern_Arabic_numerals)
我需要在数字的正确边上得到负数(我相信这是左边)
解
我最终只是在需要弄乱显示数字(如此处的答案)时检查设备是否为RTL:android确定设备是否为从右到左的语言/布局
如果设备是RTL,则我使用带有负号的负子模式作为后缀,如下所示:
"#.000000,#.000000-"
Run Code Online (Sandbox Code Playgroud)
只是分享另一种方法,在文本视图中,您可以将文本方向设置为从左到右,它将正确显示负号。
textView.setTextDirection(TextView.TEXT_DIRECTION_LTR);
Run Code Online (Sandbox Code Playgroud)
我不知道你的代码是什么,但我用代码-1,111,11得到了这个:
DecimalFormat df2 = new DecimalFormat( "#,###,###.###" );
Double dd=-1111.11;
String res=df2.format(dd);
((EditText)findViewById(R.id.editText1)).setText(res);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1545 次 |
| 最近记录: |