Tho*_*mas 20
使用DecimalFormat
:new DecimalFormat("#.0#####").format(d)
.
这将生成1到6位十进制数字.
由于DecimalFormat
将使用默认语言环境的符号,您可能希望提供要使用的符号:
//Format using english symbols, e.g. 100.0 instead of 100,0
new DecimalFormat("#.0#####", DecimalFormatSymbols.getInstance( Locale.ENGLISH )).format(d)
Run Code Online (Sandbox Code Playgroud)
要格式化100.0到100,请使用格式字符串#.######
.
请注意,DecimalFormat
默认情况下会循环,例如,如果您传入,0.9999999
则会获得输出1
.如果您想0.999999
改为,请提供不同的舍入模式:
DecimalFormat formatter = new DecimalFormat("#.######", DecimalFormatSymbols.getInstance( Locale.ENGLISH ));
formatter.setRoundingMode( RoundingMode.DOWN );
String s = formatter.format(d);
Run Code Online (Sandbox Code Playgroud)
这是一个有效的廉价黑客(并且不会引入任何舍入问题):
String string = String.format("%.6f", d).replaceAll("(\\.\\d+?)0*$", "$1");
Run Code Online (Sandbox Code Playgroud)