package
com.coderzheaven.numberformattest;
import
java.text.DecimalFormat;
import
java.text.NumberFormat;
import
java.util.Locale;
import
android.app.Activity;
import
android.os.Bundle;
import
android. widget. TextView;
public
class
MainActivity
extends
Activity {
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
TextView tv =
new
TextView(
this
);
tv.setPadding(
10
,
10
,
10
,
10
);
NumberFormat numberFormat =
new
DecimalFormat(
"##"
);
String str = numberFormat.format(-
01234.567
);
tv.setText(str +
"\n\n"
);
str = numberFormat.format(
00
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"##00"
);
str = numberFormat.format(
0
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
".00"
);
str = numberFormat.format(-.
4567
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"0.000"
);
str = numberFormat.format(-.
34567
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"#.######"
);
str = numberFormat.format(-
012.34567
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"#.000000"
);
str = numberFormat.format(-
1234.567
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"#,###,###"
);
str = numberFormat.format(-
01234567.890
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"'text'#"
);
str = numberFormat.format(+
1234.567
);
tv.append(str +
"\n\n"
);
numberFormat =
new
DecimalFormat(
"00.00E0"
);
str = numberFormat.format(-
012345.67
);
tv.append(str +
"\n\n"
);
Locale locale = Locale.FRANCE;
str = NumberFormat.getNumberInstance(locale).format(-
123456.789
);
tv.append(str +
"\n\n"
);
setContentView(tv);
}
}
This rounds 12.345 to 12.34
Excel rounds 12.345 to 12.35
Which is correct?