开发者

How do I use the NumberFormat & maxDecimalFraction() functions?

开发者 https://www.devze.com 2023-02-14 17:14 出处:网络
I want to format the text sent to a edittext box so that at most 2 decimal places are shown, e.g. XXX.00. From the developer.android site I\'ve been able to create the format variable (or is it a enum

I want to format the text sent to a edittext box so that at most 2 decimal places are shown, e.g. XXX.00. From the developer.android site I've been able to create the format variable (or is it a enum?) as follows:

NumberFormat nf = new NumberFormat;
nf.setMaximumFractionDigits(2);

I tried to format my string s = nf.format(s); but it doesn't work. How do I format a string vaiable with the nf to prepare it for a edittext box?

Also, how am I supposed to figure this out from the developers.android site for "NumberFormat"? Is there a way to read t开发者_JS百科he site to figure this out, or is the site simply incomplete?


Try this. Your code looks incomplete. The NumberFormat documentation looks complete to me.

NumberFormat nf = NumberFormat.getInstance(); // get instance for your locale
nf.setMaximumFractionDigits(2); // set decimal places
String s = nf.format(100.0232); // the parameter must be a long or double


I have created a method that I use for formatting my text:

public static String formatDouble(double doubleToFormat, int min, int max) {
NUMBER_FORMAT.setMaximumFractionDigits(max);
NUMBER_FORMAT.setMinimumFractionDigits(min);
return NUMBER_FORMAT.format(doubleToFormat);
}

Here is my NUMBER_FORMAT field:

public static final NumberFormat NUMBER_FORMAT = NumberFormat.getInstance();

And to use it:

myEditText.setText(formatDouble(153.141254, 2, 2));

result text in myEditText: 153.14

using this function(formatDouble), you can send any min or max value you desire

0

精彩评论

暂无评论...
验证码 换一张
取 消