【发布时间】:2017-09-08 03:13:37
【问题描述】:
如何将float 转换为String 并始终获得指定长度的结果字符串?
例如,如果我有
float f = 0.023f;
我想要一个 6 个字符的字符串,我想得到 0.0230。但如果我想将其转换为 4 个字符的字符串,结果应该是 0.02。此外,限制为 5 个字符的值 -13.459 应返回 -13.4,并返回 10 个字符 -13.459000。
这是我现在正在使用的,但必须有更漂亮的方法来做到这一点......
s = String.valueOf(f);
s = s.substring(0, Math.min(strLength, s.length()));
if( s.length() < strLength )
s = String.format("%1$-" + (strLength-s.length()) + "s", s);
【问题讨论】:
-
见
java.text.DecimalFormat。 -
这种格式很奇怪……
100000.05仅限于5会怎样?10000? 但必须有更漂亮的方法来做到这一点String.format("%." + limit + "f", f).substring(0, limit) -
@Selvin 是的,正确的。在我的具体情况下,我知道我正在处理的数字的范围,我可以调整所需的长度。它用于记录目的,将数字输出到 LogCat 中的“列”中,因此即使输出速率很高并且数字/小数的符号和数量未知(但数字限制在一定范围内),它们也更容易阅读。跨度>
-
@Selvin 似乎在工作,谢谢!
-
For the floating-point conversions 'e', 'E', and 'f' the precision is the number of digits after the decimal separator.— 投入大的整数部分并获得 long-long 输出。
标签: java string-formatting number-formatting string-conversion