在ACM上, 我们经常会碰到一些浮点数要求格式化输出(即保留多少位小数等)
这里主要介绍下Java怎么方便的来对浮点数四舍五入的保留制定小数位数
首先, Java也有printf函数, 其作用跟C/C++的基本相似, 只是格式串不同.
下面就来介绍它们各自格式串的异同之处.
1。整数: 格式串都是%d
2。字符: 都是%c
3。字符串:都是%s
4。浮点数(double/float):
C/C++中,格式串为%lf/%f
Java中, 格式串为%f(没有%lf)
在C/C++中, 如果我们想要保留到小数后2位输出(四舍五入)可以这样写
double d1 = 123.635; double d2 = 123.6; printf("%0.2lf %.2lf/n", d1, d2);
//输出为: 123.64 123.60
而在Java中呢,
double d1 = 123.635; double d2 = 123.6; System.out.printf("%#.2f %#.2f/n", d1, d2);
//输出为: 123.64 123.60
在Java中, float写法同上.
还有另一种方法, 就是使用java.text.DecimalFormat类
如:
double d1 = 123.635; double d2 = 123.6; DecimalFormat df = new DecimalFormat(".00"); System.out.println(df.format(d1) + " " + df.format(d2));
//输出为: 123.64 123.60