如何添加前导空格来格式化小数?

时间:2017-10-10 01:41:47

标签: java android string-formatting decimalformat

左图是我现在拥有的。正确的形象是我的目标。

enter image description here

我需要三个空格来表示小数位前的整数。如果它是0,我只需要在它之前显示两个空格。这就是我正在做的事情,但它不起作用,因为它产生左图像。我需要它在小数点前强制三个空格。

    mAttemptOneScore.setText(String.format("%3.2f", mScoreAttemptOne));
    mAttemptTwoScore.setText(String.format("%3.2f", mScoreAttemptTwo));
    mAttemptThreeScore.setText(String.format("%3.2f", mScoreAttemptThree));
    mAttemptFourScore.setText(String.format("%3.2f", mScoreAttemptFour));
    mTotalScore.setText(String.format("%3.2f", mFinalScore));

1 个答案:

答案 0 :(得分:1)

看起来你有一定数量的尝试。 在这种情况下,构建UI的正确方法是使用GridLayout:https://developer.android.com/reference/android/widget/GridLayout.html

如果您仍想使用基于文本的格式,则有许多解决方案。

  1. 基于标签的格式 mAttemptTwoScore.setText(String.format("On %d attempt \t\t%d * %.2f\t=%3.2f", ...));

  2. HTML格式化,使用html构建您的UI并使用此方法 @SuppressWarnings("deprecation") public static Spanned getSpanned(String text) { Spanned spanned; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) spanned = Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY); else spanned = Html.fromHtml(text); return spanned; } 将HTML分配给TextView。

  3. 第三方图书馆,例如https://github.com/thedathoudarya/WAGU-data-in-table-view。您应该保证使用等宽字体。