java 两个整数相除保留两位小数:
http://blog.sina.com.cn/s/blog_624d755d0101cvuq.html
java中,当两个整数相除时,由于小数点以后的数字会被截断,运算结果将为整数,此时若希望得到运算结果为浮点数,必须将两整数其一或是两者都强制转换为浮点数。
例如:
(float)a/b // 将整数其中一个强制转换为浮点数,再与另一个整数相除
a/(float)b
(float)a/(float)b // 将两个整数同时强制转换为浮点数后再相除
Java代码
- float num= (float)2/3;
- DecimalFormat df = new DecimalFormat("0.00");//格式化小数
- String s = df.format(num);//返回的是String类型
将小数转化为百分数:
import java.text.NumberFormat;
public class TeachYou {
public static void main(String[] args) {
//这里的数后面加“D”是表明它是Double类型,否则相除的话取整,无法正常使用
double percent = 50.5D / 150D;
//输出一下,确认你的小数无误
System.out.println("小数:" + percent);
//获取格式化对象
NumberFormat nt = NumberFormat.getPercentInstance();
//设置百分数精确度2即保留两位小数
nt.setMinimumFractionDigits(2);
//最后格式化并输出
System.out.println("百分数:" + nt.format(percent));
}
}
取限定位数
// 创建一个数值格式化对象
NumberFormat nt = NumberFormat.getInstance();
// 设置精确到小数点后2位
nt.setMinimumFractionDigits(2);
nt.setMaximumFractionDigits(2);
nt.format((float) a / (float) count);