四舍五入使用Math.rint()如何确定小数位数
比如下面这个小程序的结果为2,我想得到2.4该怎么改呢.请给出改后的程序.
public class Ma
{
public static void main(String args[])
{
double k,i;
i=2.3+0.06;;
k=Math.rint(i);
System.out.println( "结果为: "+i);
}
}
------解决方案--------------------sf
------解决方案--------------------public static double rint(double a)返回其值最接近参数并且是整数的 double 值。如果两个整数的 double 值都同样接近,那么结果取偶数。特殊情况是:
如果参数值是整数,那么结果就是该参数。
如果参数是 NaN 或无穷大或正零或负零,那么结果与参数相同。
参数:
a - double 值。
返回:
最接近 a 的整数浮点值
-------------------------
lz用错了吧~
------解决方案--------------------NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
string s = formatter.format(3.236)
------解决方案--------------------new BigDecimal(i).setScale(1, BigDecimal.ROUND_HALF_UP)..doubleValue();
------解决方案--------------------new BigDecimal(i).setScale(1, BigDecimal.ROUND_HALF_UP)..doubleValue();
==============================
这个比较准确,否则会出现只返回偶数位的情况,不信试试NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(2);
formatter.setMinimumFractionDigits(2);
string s = formatter.format(3.225)
此时得到的是3.22而不是四舍五入想得到的3.23
------解决方案--------------------import java.text.DecimalFormat;
public class Ma
{
public static void main(String args[])
{
DecimalFormat df= new DecimalFormat( "#0.0 ");
double k,i;
i=2.3+0.06;;
System.out.println(df.format(i));
}
}
//你试试!
------解决方案--------------------import java.text.DecimalFormat;
public class DD {
public static void main(String args[])
{
double k,i;
k=2.36;
DecimalFormat df=new DecimalFormat( "#.# ");
System.out.println( "结果为: "+df.format(k));
}
}