SQLite数据库中字符串格式的模糊问题

时间:2013-04-18 21:31:48

标签: android string-formatting

我很欣赏有很多有用的堆栈问题和我的问题的答案,但我遇到了过去没有的问题。

问题:

我正在使用光标在视图中的行中填充textviews(不使用listview - 我知道这很疯狂)。我正在尝试格式化从数据库列STUDENT_POINTS中取出的字符串值,这些值放在textview tpoints中。这是我正在使用的代码:

public void bindView(View v, final Context context, Cursor c) {
        final int id = c.getInt(c.getColumnIndex(Students.STUDENT_ID));
        final String name = c.getString(c.getColumnIndex(Students.STUDENT_NAME));
        final String age = c.getString(c.getColumnIndex(Students.STUDENT_AGE));
        final String points = c.getString(c.getColumnIndex(Students.STUDENT_POINTS));
        final String teachernote = c.getString(c.getColumnIndex(Students.TEACHERNOTE));
        final byte[] image = c.getBlob(c.getColumnIndex(Students.IMAGE));
        ImageView iv = (ImageView) v.findViewById(R.id.photo);

        if (image != null) {
            if (image.length > 3) {
                iv.setImageBitmap(BitmapFactory.decodeByteArray(image, 0,image.length));
            }
        }

        TextView tname = (TextView) v.findViewById(R.id.name);
        tname.setText(name);
        TextView tage = (TextView) v.findViewById(R.id.age);
        tage.setText(age);
        TextView tpoints = (TextView) v.findViewById(R.id.points);
        tpoints.setText(String.format(points, "%1$,.2f"));

        final StudentsConnector sqlCon = new StudentsConnector(context);

剩下的bindView用于按钮,所以我没有把它包含在这里。问题在于:

tpoints.setText(String.format(points, "%1$,.2f"));

我打算用逗号分隔大数字,但这没有任何作用!如果有人有时间,请你告诉我我做错了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你有两个参数向后 - 你应该有格式字符串后跟数据字符串:String.format(“%1 $,。2f”,points);

在我的代码中使用这个小片段为我格式化了很好:

    double points = 56789.45f;
    String boogie = String.format("%1$,.2f", points );

它产生了一个数字56,789.45 但由于高速公路的精确性,更大的数字不能很好地工作。您可能希望将尾数从它们中分离出来,将它们单独格式化并组合起来。