strings.xml中点后的2位双参数?

lom*_*mza 38 string android formatter android-resources

我想在一个字符串中有一个参数strings.xml,这个参数应该是一个double值.所以我用%1$f.这里 - http://developer.android.com/reference/java/util/Formatter.html有很多例子,但是如果我想拥有一些double/float参数并且我只希望第二个拥有2位数后.呢?我尝试使用像%2$.2f或的组合%2.2$f.他们也没有工作.%.1f不起作用.那么,是否有人知道如何"自定义" float/double内部的值strings.xml?谢谢.

Nik*_*man 117

只需在这里添加@David Airam的答案; 他给出的"不正确"解决方案实际上是正确的,但稍微调整一下.XML文件应包含:

<string name="resource1">Hello string: %1$s, and hello float: %2$.2f.</string>
Run Code Online (Sandbox Code Playgroud)

现在在Java代码中:

String svalue = "test";
float sfloat= 3.1415926;
String sresult = getString(R.string.resource1, svalue, sfloat);
Run Code Online (Sandbox Code Playgroud)

@David Airam报告的例外情况是试图将a阻塞String到格式说明符中%f,这需要浮点类型.使用float,没有这样的例外.

此外,您可以使用Float.valueOf()将String转换为float,以防输入数据最初是一个字符串(例如,来自某个EditText或某个东西).但是,您应该始终尝试/捕获valueOf()操作并处理NumberFormatException大小写,因为未检查此异常.


小智 5

%.1f 如果你想在“,”后只显示 1 位数字,对我有用