我想格式化从本地数据库收到的号码
示例:
10000至10.000或1000000至100.000
我的代码:
holder.mTextViewHarga.setText("Rp. " + mProdukList.get(position).gethargaProduk());
我必须在尝试此代码之前但仍然出错:
Locale localeID = new Locale("in", "ID");
NumberFormat formatRupiah = NumberFormat.getCurrencyInstance(localeID);
holder.mTextViewHarga.setText("Rp. " +formatRupiah.format((double) mProdukList.get(position).gethargaProduk()));
答案 0 :(得分:3)
您需要使用数字格式化程序,如下例所示:
NumberFormat myFormatter = new DecimalFormat("#.###");
double myNumber = 1234.5632;
String formattedNumber = myFormatter.format(myNumber);
并且formattedNumber等于“ 1234.563”
答案 1 :(得分:2)
使用DecimalFormat()
DecimalFormat df2 = new DecimalFormat( "#,###,###,##0.00" );
double d = 100.2397;
double d1 = new Double(df2.format(d)).doubleValue();
输出-d1为100.24
答案 2 :(得分:1)
从this link起,答案将是
Locale localeID = new Locale("in", "ID");
String pattern = "###,###.###";
NumberFormat nf = NumberFormat.getNumberInstance(localeID);
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(pattern);
String output = df.format(value);
答案 3 :(得分:1)
DecimalFormat类:这是一个Java类,允许我们以所需的格式显示数字,它可以是限制小数,使用句点,逗号等的示例。
//required import
import java.text.DecimalFormat;
DecimalFormat formatter = new DecimalFormat("####.####");
//It prints four decimals, like this: 7,1234
System.out.println (formatter.format (7.12342383));
如果我们使用零而不是#,则不存在的数字将用零填充,例如:
DecimalFormat formatter = new DecimalFormat("0000.0000");
//It prints: 0001,8200
System.out.println (formatter.format (1.82));
我们还可以在蒙版中使用百分号(%),因此在打印时该数字将自动乘以100。
DecimalFormat formatter = new DecimalFormat("###.##%");
//It prints: 68,44%
System.out.println (formatter.format(0.6844));