2 qq 31071631 qq_31071631 于 2016.01.28 18:31 提问

现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的。

各位大虾,现有Double类型的数据,如何转换为保留两位小数的数,返回值的类型仍然是Double类型的,而不是字符串类型。

7个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.01.28 18:40
 double a=1.2345;
 a=int(a*100)/100.0;

thanks_china2016
thanks_china2016   2016.01.28 20:33

在java里面没有四舍五入,c,c++才有。
java a=int(a*100+0.5)/100.0; 这种很快捷
C 直接输出system.out.printf(“%2.d”,a)

caozhy
caozhy   Ds   Rxr 2016.01.28 18:47

赞楼上,顺便说下,如果是4舍5入,就是a=int(a*100+1)/100.0;
当然,这种方法理论上存在一个缺陷,就是可能有精度误差,得到的也许是类似3.140000000001或者3.13999999999999之类的数,要精确,建议你返回类型用int,decimal或者字符串。

caozhy
caozhy   Ds   Rxr 2016.01.28 18:48

赞楼上,顺便说下,如果是4舍5入,就是a=int(a*100+0.5/100.0;

caozhy
caozhy   Ds   Rxr 2016.01.28 18:48

a=int(a*100+0.5)/100.0;

Trent1985
Trent1985   2016.01.29 09:49

double a=1.2345;
double b = (double)((int)(a*100.0)/100);这样最后输出的才是你要的小数

zrf1335348191
zrf1335348191   2016.01.29 13:11

用格式化输出也可以,String.format("%1.2d",double);获取到一个字符串,
blog.csdn.net/zrf1335348191/article/month/2016/01 看看我这篇关于格式化输出的文章吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!