首先把199.999保留一位有效数字:199.9
然后再把199.9转化成欧洲一些国家的表示方法:199,9(这里的逗号是小数位)
谢谢各位了!
------解决方案--------------------
- Java code
double d = 199.999; String s = String.valueOf(d); int index = s.indexOf("."); String s1 = s.substring(0, index + 2).replace(".", ","); System.out.println(s1);
------解决方案--------------------
for example
- Java code
double d = 199.999;String s = String.valueOf(d).replaceAll("(\\d+)[.](\\d)\\d+", "$1,$2");System.out.println(s);
------解决方案--------------------
正解1111111111111
------解决方案--------------------
[color='red']11[/color ]
------解决方案--------------------
------解决方案--------------------
double d = 199.999;
String s = String.valueOf(d);
int index = s.indexOf(".");
String s1 = s.substring(0, index + 2).replace(".", ",");
System.out.println(s1);
------解决方案--------------------
一般来说,减少小数位数,是要四舍五入的吧
1. *10
2. 四舍五入转int
3. 转字符串
4. 倒数第二位那里插入一个,分隔符
------解决方案--------------------
很明显,使用德国风俗就行了。
- Java code
import java.util.*;public class Test { public static void main(String args[]) { Locale de = new Locale("de","DE");//使用德国风俗。 Locale old = Locale.getDefault(); Locale.setDefault(de); System.out.printf("Germany locale %.1f", 19.999-0.05);//java是四舍五入的,我没找到开关所以用个小技巧就能保证是舍去。 Locale.setDefault(old); System.out.println(); System.out.printf("China locale %.1f", 19.999-0.05);//同上 }}
------解决方案--------------------
+1
------解决方案--------------------
+1这种正则表达式好。
------解决方案--------------------
首先部分:
float scale = 34.236323;
DecimalFormat fnum = new DecimalFormat("##0.0");
String dd=fnum.format(scale);
System.out.println(dd);
然后部分:replace(".",",")