java中怎么控制double的小数位数?

java中怎么控制double的小数位数?,第1张

import javatextDecimalFormat;
public class Main {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat( "00000 ");
double d1 = 10;
double d2 = 456789;
Systemoutprintln(dfformat(d1));
Systemoutprintln(dfformat(d2));
}  
}

利用javatextDecimalFormat可以设置double型数据小数点位数,具体做法如下代码:

[java] view plain copy

import javatextDecimalFormat;

public class Main {

public static void main(String[] args) {

DecimalFormat df = new DecimalFormat( "000"); //设置double类型小数点后位数格式

double d1 = 21;

double d2 = 345678;

Systemoutprintln(dfformat(d1)); //将输出210

Systemoutprintln(dfformat(d2)); //将输出346(四舍五入)

}

}  

Pow 函数的定义。public static double Pow( double x, double y);调用的例子double result = SystemMathPow(5, 3);

先定义:
javatextDecimalFormat myformat=new javatextDecimalFormat("#000");
然后就用:
myformatformat(a);
如:
double a;
a= 31415926;

Systemoutprintln(myformatformat(a));
或者
4舍5入法
double a=31415926 ;
BigDecimal a=new BigDecimal(f);
double af = bsetScale(2,BigDecimalROUND_HALF_UP)doubleValue();

c#的double类型数据可以精度是16。

double d = 4589;int precission = 0;string[] strArr = dToString()Split('');//分开整数与小数部分if (strArrGetLength(0) == 2){precission = strArr[1]Length;}elseprecission = 0。

因为printf %f 默认只输出小数后6位,可以试试 %16f。

定类数据:

它将数据按照类别属性进行分类,各类别之间是平等并列关系。这种数据不带数量信息,并且不能在各类别间进行排序。例如,某商场将顾客所喜爱的服装颜色分为红色、白色、等,红色、白色、即为定类数据。

人类按性别分为男性和女性也属于定类数据。虽然定类数据表现为类别,但为了便于统计处理,可以对不同的类别用不同的数字或编码来表示。如1表示女性,2表示男性,但这些数码不代表着这些数字可以区分大小或进行数学运算。

不论用何种编码,其所包含的信息都没有任何损失。对定类数据执行的主要数值运算是计算每一类别中的项目的频数和频率。

C语言里面,默认%f是小数点后6位,如果想小数点后面16位,写成%16lf 不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确 通常能精确到小数点后面5,6位,也就是说超过5,6位了可能就不准了。

只要用浮点数 包括float, double, long double都会有精度问题
也就是值是近似值
如果近似值不够准确 需要更准确的值 可以提高精度 即float->double->long double
如果还不行 只能用自定义数据类型进行大数计算


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/13108235.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-30
下一篇2025-08-30

发表评论

登录后才能评论

评论列表(0条)

    保存