Java 如何在具有4位小数的函数中返回双数据类型?
在java中,如何在函数中返回4位小数的双数据类型Java 如何在具有4位小数的函数中返回双数据类型?,java,function,double,decimal,Java,Function,Double,Decimal,在java中,如何在函数中返回4位小数的双数据类型 public static double fun(){ double d=2.5d; String s=String.format("%.4f",d); double ans=Double.parseDouble(s); return(ans); } 实际输出=2.5 预期输出=2.5000如果您使用double进行数学计算,则使用2.5相当于2.5000。你能更具体地说明你为什么想
public static double fun(){
double d=2.5d;
String s=String.format("%.4f",d);
double ans=Double.parseDouble(s);
return(ans); }
实际输出=2.5预期输出=2.5000如果您使用double进行数学计算,则使用
2.5
相当于2.5000
。你能更具体地说明你为什么想要后者吗
如果确实需要小数点后4位,我假设这是某种输出格式任务,在这种情况下,您可以直接返回字符串表示。您不能调整双精度值本身的精度,而可以为值的字符串表示的输出格式设置精度。干杯。为什么不返回双精度,然后处理到小数点后4点?否则,您可以返回一个在小数点后有4位字符的字符串。如果您想要有一个特定的表示形式,那么您就不能再使用double,因为double有一个特定的值,它不关心如何显示它。唯一的选择是返回double的
字符串
表示形式。只需返回s
。这是否回答了您的问题?您也可以将其返回为int
乘以10000
(将小数点向右移动4位):return(int)Math.round(d*10000)代码>谢谢你的建议。嗯,这是我在考试中遇到的问题。问题是函数返回数据类型是双精度的,并且需要给出最多4位小数。我认为这里的关键词是“最多”。所以他们可能意味着最多有4位小数。因此,任何精度大于4的值都将四舍五入到小数点后4位。任何小于4的都将保持原样。下面是一种将其四舍五入到4位小数的方法BigDecimal bd=new BigDecimal(String.valueOf(doubleVal)).setScale(4,BigDecimal.round_-UP);返回bd.doubleValue()
您也可以这样做->(double)Math.round(doubleVal*10000d)/10000d
,但第二个选项可能会产生舍入错误,因此我建议使用第一个选项。