A. 如何将一个double类型的数四舍五入保留两位小数
方式一:
四舍五入
double f = .5585;
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
保留两位小数
---------------------------------------------------------------
方式二:
java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");
df.format(你要格式化的数字);
例:new java.text.DecimalFormat("#.00").format(3.)
#.00 表示两位小数 #.0000四位小数 以此类推
方式三:
double d = 3.;
String result = String .format("%.2f");
%.2f %. 表示 小数点前任意位数 2 表示两位小数 格式后的结果为f 表示浮点型
方式四:
NumberFormat ddf1=NumberFormat.getNumberInstance() ;
void setMaximumFractionDigits(int digits)
digits 显示的数字位数
为格式化对象设定小数点后的显示的最多位,显示的最后位是舍入的
B. c语言的关于 : 对一个double型数据进行四舍五入运算
对double数据类型进行四舍五入运算,可以利用double转为整型时强制取整来做到。
1
将double类型数据,强制转换为int类型,会强制截取整数部分。
比如double
a
=
1.23;
(int)a的值就是1。
2
由于是强制取整,所以即使是1.9转为int后,同样是1,这与四舍五入的要求不符。所以可以转换一下算法,做(int)(a+0.5)就可以实现四舍五入到整数的效果了。
3
要实现四舍五入到某一位,可以先乘一个值,将该位移动到个位,取整后,再除上这个值,将其移动回去。
比如将double
a
=
1.2345四舍五入保留2位小数,可以写作
(int)(a*100+0.5)/100.0。
C. 安卓网络请求拿到的数据明明是1 为啥是double型
对double数据类型进行四舍五入运算,可以利用double转为整型时强制取整来做到。 1 将double类型数据,强制转换为int类型,会强制截取整数部分。 比如double a = 1.23; (int)a的值就是1。 2 由于是强制取整,所以即使是1.9转为int后,同样是1,这与四舍五入的要求不符。所以可以转换一下算法,做(int)(a+0.5)就可以实现四舍五入到整数的效果了。 3 要实现四舍五入到某一位,可以先乘一个值,将该位移动到个位,取整后,再除上这个值,将其移动回去。 比如将double a = 1.2345四舍五入保留2位小数,可以写作 (int)(a*100+0.5)/100.0。
D. android 谁能解释下这段代码什么意思
程序的意义:把浮点的千分位进行四舍五入,
这种算法的实用意义并不大,因为浮点数并不是十进制表示的,是不精确的,
当重新转换成浮点数后,也是不精确的,浪费了计算时间,只有最终转换成
十进制字符串时才有实用意义。
先将数字前推两位,然后强制转型成整形丢失后面的位数。然后做差得到相差的数值。一个判断是来判断第三位(已经进了两位咯)是大于5的还是小于5的,大于五就进位。最后进行还原,返回四舍五入的数值。
比如: 13.36 很可能重新变成 12.359999999998 之类的情况
这段代码是一个if函数,double的具体长度可以根据资料进行详细查找就可以了。
E. android中如何实现除法的保留小数点后2位,四舍五入!
android实现保留小数点后2位,四舍五入,就是java语言的实现,可以使用java提供的round(double a)函数,实现四舍五入的计算。
public static double round(Double v, int scale) {
if (scale < 0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = null == v ? new BigDecimal("0.0") : new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
}
BigDecimal 这个类是在jdk4.0之后引入的,目的就是为了获得更精确的小数位,以便于计算。
F. 编写程序,对一个double型数据进行四舍五入运算,要求保留两位有效小数
例如double型的数据为a=5.1413,程序如下:
#incloud <stdio.h>
main( )
{
double a;
printf("请输入一个double型数据:”);
a= int (a*100+0.5)/100 ;
printf("%lf",a)。
}
这时候printf输出的结果将是5.14。
(6)androiddouble四舍五入扩展阅读:
C语言编写程序,对double型数据进行四舍五入,保留三位有效数字,程序如下:
这里以b=8.8888
#incloud <stdio.h>
main( )
{
double b;
printf("请输入一个double型数据:”);
b= int (b*1000+0.5)/1000;
printf("%lf",b)。
}
这时候printf输出的结果将是8.889。
G. double四舍五入保留两位小数
我猜测如下,因为4.015,小数部分的0.015表示成2进制数时是无限循环的,因此用double型表示4.015时,由于double的位数有限,所以只能用一个略小于4.015的数(肯定是略小于,因为只有位数无限时,这个2进制数才能等于0.015)去近似表示4.015,假设这个数是4.0149......,那么乘100后是401.49......,Math.round后是401。
H. double四舍五入
与编译环境有关,TC、BC是52,VC是53。一般四舍五入是自动进行的。
I. 关于android Math.round方法四舍五入的问题
电脑不会四舍五入,他执行的仅仅是简单的保留几位小数而已