我可以用system。out。print吗?
当前回答
你可以使用printf方法,像这样:
System.out.printf("%.2f", val);
简而言之,%。2f语法告诉Java从格式说明符(%)开始以浮点数(f)的十进制表示形式返回变量(val),其中有2位小数(.2)。
除了f,你还可以使用其他转换字符:
D:十进制整数 O:八进制整数 E:科学记数法中的浮点数
其他回答
public String getDecimalNumber(String number) {
Double d=Double.parseDouble(number);
return String.format("%.5f", d);
}
还要注意NumberFormatException
试试这个:
private static String getDecimalFormat(double value) {
String getValue = String.valueOf(value).split("[.]")[1];
if (getValue.length() == 1) {
return String.valueOf(value).split("[.]")[0] +
"."+ getValue.substring(0, 1) +
String.format("%0"+1+"d", 0);
} else {
return String.valueOf(value).split("[.]")[0]
+"." + getValue.substring(0, 2);
}
}
double d = 1.234567;
DecimalFormat df = new DecimalFormat("#.##");
System.out.print(df.format(d));
只需执行String str = System.out.printf("%。2 f”,val)。取代 (",", ".");如果你想确保独立于用户的Locale,你将总是得到/显示一个"."作为小数分隔符。这是必须的,如果你不想让你的程序崩溃,如果你以后做一些转换,如float f = float . parsefloat (str);
我建议使用String.format()如果你需要值作为字符串在你的代码。
例如,你可以这样使用String.format():
float myFloat = 2.001f;
String formattedString = String.format("%.02f", myFloat);
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- Printf与std::字符串?
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder