java decimal String format

旧街凉风 提交于 2019-11-26 06:35:49

问题


I need to format a decimal value to a string where i always display at lease 2 decimals and at most 4.

so for example

\"34.49596\" would be \"34.4959\" 
\"49.3\" would be \"49.30\"

can this be done using the String.format command? Or is there an easier/better way to do this in java.


回答1:


You want java.text.DecimalFormat.

DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(34.4959);



回答2:


Yes you can do it with String.format:

String result = String.format("%.2f", 10.0 / 3.0);
// result:  "3.33"

result = String.format("%.3f", 2.5);
// result:  "2.500"



回答3:


Here is a small code snippet that does the job:

double a = 34.51234;

NumberFormat df = DecimalFormat.getInstance();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(4);
df.setRoundingMode(RoundingMode.DOWN);

System.out.println(df.format(a));



回答4:


java.text.NumberFormat is probably what you want.




回答5:


You want java.text.DecimalFormat




回答6:


NumberFormat and DecimalFormat are definitely what you want. Also, note the NumberFormat.setRoundingMode() method. You can use it to control how rounding or truncation is applied during formatting.



来源:https://stackoverflow.com/questions/433958/java-decimal-string-format

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!