java格式化数字是什么意思?
在java中,用java.text包下的DecimalFormat类对数据进行格式化,它可以把数字格式化成一个你想要那种格式的字符串,也可以把格式字符串变成数字:例如: DecimalFormat df=new DecimalFormat("¥###,###.00"); String s=df.format(123.45); System.out.println(s); 结果为字符串¥123.45 当然也可以字符串转成数字: System.out.println(df.parse(s)); 结果为数字123.45
java数字格式化
1. 用 %3.2f格式化后, 替换逗号即可;
2. 同理, 用 #,##0.00 格式化后, 替换, 为空格即可.
你的需求:
1
2
3
4
5
doublex = 1234.5;
DecimalFormat df = newDecimalFormat(“#,###.0”);
String xs = df.format(x);
xs = xs.replace(“,”, ” “).replace(“.”, “,”);
System.out.println(xs);
输出
1
1234,5
JAVA里面如何格式化数字
楼主你好!给你写了个测试类希望能帮助你。这两个个方法只需要传入你要格式话的数据,就可以返回你想要的结果了。
package com.line;
public class T9 {
/**
* 格式化一般数据为财务格式,eg:123,456,789.00
*
* @param source
* String
* @return String
*/
public static String getCaiWuData(String source) {
StringBuffer str = new StringBuffer(“”);
if (source != null && !source.equals(“”) && source.length() > 0
&& !source.equals(“null”)) {
if (source.lastIndexOf(“,”) > 0) {
source =formatStr(source);
}
int dotIndex = 0;
if (source.indexOf(“.”) < 0) {
source += “.00”;
}
dotIndex = source.indexOf(“.”);
int index = 0;
String opt = “”;
opt = source.substring(0, 1);
if (opt.equals(“-“)) {
source = source.substring(1);
str.append(“-“);
dotIndex = source.indexOf(“.”);
}
if (dotIndex < 3) {
index += 1;
str.append(source.substring(0, dotIndex));
}
if (dotIndex % 3 == 0) {
index += dotIndex / 3;
} else {
index += (dotIndex – dotIndex % 3) / 3;
}
if (index > 0 && dotIndex >= 3) {
for (int i = index; i > 0; i–) {
if (i == index) {
str.append(source.substring(0, dotIndex – i * 3));
}
if (dotIndex – i * 3 > 0) {
str.append(“,”);
}
if (i >= 1) {
str.append(source.substring(dotIndex – i * 3, dotIndex
– (i – 1) * 3));
}
}
}
str.append(source.substring(dotIndex));
}
if (source.length() – source.lastIndexOf(“.”) < 3) {
str.append(“0”);
}
int dot_index = str.toString().indexOf(“.”) + 2;
int str_len = str.toString().length();
char[] strArr = str.toString().toCharArray();
StringBuffer rev = new StringBuffer();
for (int i = str_len – 1; i > 0; i–) {// 除去尾数0,小数点后保留2位
if (i > dot_index
&& Integer.parseInt(new Character(strArr[i]).toString()) > 0) {
rev.append(str.toString().substring(0, i + 1));
break;
} else if (i == dot_index && (int) strArr[i] >= 0) {
rev.append(str.toString().substring(0, dot_index + 1));
break;
}
}
return rev.toString();
}
/**
* 格式化财务数据为一般字符串,eg:123456789.00
*
* @param source
* String
* @return String
*/
public static String formatStr(String source) {
StringBuffer str = new StringBuffer(“”);
if (source != null && !source.equals(“”) && source.length() > 0
&& !source.equals(“null”)) {
String temp = source.substring(0, 1);
if (temp.equals(“-“)) {
source = source.substring(1);
str.append(“-“);
}
String[] myarr = source.split(“,”);
int lastIndex = source.lastIndexOf(“,”);
if (lastIndex > 0) {
for (int i = 0; i < myarr.length; i++) {
str.append(myarr[i]);
}
}
if (source.lastIndexOf(“,”) < 0) {
str.append(source);
}
if (source.lastIndexOf(“.”) < 0) {
str.append(“.00”);
}
if (source.length() – source.lastIndexOf(“.”) < 3
&& !”0″.equals(source)) {
str.append(“0”);
}
} else {
return (str.append(“0.00”).toString());
}
return str.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
T9 t=new T9();
System.out.println(t.getCaiWuData(“1231313”));
System.out.println(t.formatStr(“1,231,313.00”));
}
}
Java中数字格式化的方法
package test; import java.text.DecimalFormat; public class Test { public static void main(String[] args) { int aa = 555; DecimalFormat decimalFormat = new DecimalFormat("00000000"); String ss = decimalFormat.format(aa); System.out.println(ss); } }
java实现数值千分位格式化且保留指定小数位且小数位不进行四舍五入
保留指定位数能进行四舍五入
public static void main(String[] args) {
String str =”12312323423423.123283123″;
BigDecimal b = new BigDecimal(str);
//,代表分隔符
//0.后面的##代表位数 如果换成0 效果就是位数不足0补齐
DecimalFormat d1 =new DecimalFormat(“#,##0.####;(#)”);
System.out.println(d1.format(b));
}
不四舍五入的方法
String str =”12312323423423.123283923″;
BigDecimal b = new BigDecimal(str);
//,代表分隔符
//.后面的##代表位数 如果换成0 效果就是位数不足0补齐
DecimalFormat d1 =new DecimalFormat(“#,##0.######”);
// 设置舍入模式
d1.setRoundingMode(RoundingMode.FLOOR);
System.out.println(d1.format(b));
JAVA 把字符串.0001格式化成0.0001
import java.text.NumberFormat;
public class FloatFormat {
/**
* 参数 original:
* 原来的浮点格式
* 返回值:
* 修正后的浮点格式
*/
public static String changeFormat(String original) {
if (original.startsWith(“.”)) {
if (original.endsWith(“.”)) {
return “0” + original.substring(0, original.length() – 1);
}
return “0” + original;
}
if (original.endsWith(“.”)) {
return original.substring(0, original.length() – 1);
}
return original;
}
public static void main(String[] args) {
// 通过5个典型测试数据
System.out.println(changeFormat(“345345.0001”));
System.out.println(changeFormat(“.0001”));
System.out.println(changeFormat(“.”));
System.out.println(changeFormat(“345345.”));
System.out.println(changeFormat(“1.1E-4”));
// Output:
// 345345.0001
// 0.0001
// 0
// 345345
}
}
Java中数字格式化的问题
java中四舍五入也分好几种情况。
1、 ROUND_UP:远离零方向舍入。向绝对值最大的方向舍入,只要舍弃位非0即进位。
2、 ROUND_DOWN:趋向零方向舍入。向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况。
3、 ROUND_CEILING:向正无穷方向舍入。向正最大方向靠拢。若是正数,舍入行为类似于ROUND_UP,若为负数,舍入行为类似于ROUND_DOWN。Math.round()方法就是使用的此模式。
4、 ROUND_FLOOR:向负无穷方向舍入。向负无穷方向靠拢。若是正数,舍入行为类似于ROUND_DOWN;若为负数,舍入行为类似于ROUND_UP。
5、 HALF_UP:最近数字舍入(5进)。这是我们最经典的四舍五入。
6、 HALF_DOWN:最近数字舍入(5舍)。在这里5是要舍弃的。
7、 HAIL_EVEN:银行家舍入法。
java DecimalFormat格式化数字
没有区别 但如果是0.## 和 0.00的话就可以看出区别了 假设要转换的数字是5 使用0.00转换后结果是5.00 而如果是0.##结果就是5
java 已知 String i=1; 怎样使用正则 转换成 0001
1. 用DecimalFormat进行数字格式化 import java.text.DecimalFormat; public class $ { public static void main(String[] args) { DecimalFormat f = new DecimalFormat("0000"); int i = 1; String str = f.format(i); System.out.println(str); } }
java.text.DecimalFormat如何将数字格式化为金额格式,而且小数点保留任意位
DecimalFormat myformat = new DecimalFormat(); myformat.applyPattern("##,###.000"); System.out.println(myformat.format(11112345.12345));