如何在Java中显示2位小数的浮点数据输出?
我可以用System.out.print
做到吗?
您可以使用printf
方法,如下所示:
System.out.printf("%.2f", val);
简而言之, %.2f
语法告诉Java从格式说明符( %
)的开头以浮点数( f
)的十进制表示forms返回带有2个小数位( .2
)的variables( val
)。
除了f
之外,还有其他的转换字符可以使用:
-
d
:十进制整数 -
o
:八进制整数 -
e
:浮点科学记数法
在学习Java – 第5章中可以看到一些例子
您可以使用DecimalFormat
。 一种使用方法:
DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(2); System.out.println(df.format(decimalNumber));
另一个是使用#.##
格式构造它。
我发现所有的格式化选项比调用格式化方法的可读性都差,但这是一个优先select的问题。
我会build议使用String.format()如果你需要在你的代码中的String
的值。
例如,您可以按以下方式使用String.format()
:
float myFloat = 2.001f; String formattedString = String.format("%.02f", myFloat);
double d = 1.234567; DecimalFormat df = new DecimalFormat("#.##"); System.out.print(df.format(d));
很多人都提到DecimalFormat
。 但是如果你有最新版本的Java,你也可以使用printf
:
System.out.printf("%1.2f", 3.14159D);
有关printf格式string的更多信息,请参阅Formatter上的文档 。
float f = 102.236569f; DecimalFormat decimalFormat = new DecimalFormat("#.##"); float twoDigitsF = Float.valueOf(decimalFormat.format(f)); // output is 102.24
一个简单的窍门是通过将它乘以例如100
来生成一个较短版本的variables,四舍五入并再次除以100.0
。 这样你就可以生成一个2位小数的variables:
double new_variable = Math.round(old_variable*100) / 100.0;
这个“便宜的技巧”对我来说总是够用的,而且可以用任何语言工作(我不是一个Java人,只是学习它)。
看DecimalFormat
这里是一个来自教程的例子:
DecimalFormat myFormatter = new DecimalFormat(pattern); String output = myFormatter.format(value); System.out.println(value + " " + pattern + " " + output);
如果你select一个像“###。##”这样的模式,你会得到两位小数,我认为这些数值是四舍五入的。 你会想看看链接,以获得你想要的确切格式(例如,是否要尾随零)
float floatValue=22.34555f; System.out.print(String.format("%.2f", floatValue));
输出是22.35。 如果您需要3位小数点,请将其更改为“%.3f”。
OK – str漂浮。
package test; import java.text.DecimalFormat; public class TestPtz { public static void main(String[] args) { String preset0 = "0.09,0.20,0.09,0.07"; String[] thisto = preset0.split(","); float a = (Float.valueOf(thisto[0])).floatValue(); System.out.println("[Original]: " + a); a = (float) (a + 0.01); // Part 1 - for display / debug System.out.printf("[Local]: %.2f \n", a); // Part 2 - when value requires to be send as it is DecimalFormat df = new DecimalFormat(); df.setMinimumFractionDigits(2); df.setMaximumFractionDigits(2); System.out.println("[Remote]: " + df.format(a)); } }
输出:
run: [Original]: 0.09 [Local]: 0.10 [Remote]: 0.10 BUILD SUCCESSFUL (total time: 0 seconds)
小型简单的演示程序:
import java.io.*; import java.util.Scanner; public class twovalues { public static void main(String args[]) { float a,b; Scanner sc=new Scanner(System.in); System.out.println("Enter Values For Calculation"); a=sc.nextFloat(); b=sc.nextFloat(); float c=a/b; System.out.printf("%.2f",c); } }