当前位置: 代码迷 >> J2SE >> 四舍五入使用Math.rint()怎么确定小数位数
  详细解决方案

四舍五入使用Math.rint()怎么确定小数位数

热度:333   发布时间:2016-04-24 15:28:32.0
四舍五入使用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));
}
}
  相关解决方案