当前位置: 代码迷 >> J2SE >> 199.999怎么转化成199,9
  详细解决方案

199.999怎么转化成199,9

热度:21   发布时间:2016-04-24 00:52:16.0
199.999如何转化成199,9
首先把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 ]
------解决方案--------------------
探讨

for example
Java code
double d = 199.999;
String s = String.valueOf(d).replaceAll("(\\d+)[.](\\d)\\d+", "$1,$2");
System.out.println(s);

------解决方案--------------------
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
探讨

很明显,使用德国风俗就行了。
Java code
import java.util.*;
public class Test {
public static void main(String args[]) {
Locale de = new Locale("de","DE");//使用德国风俗。
Locale old = Locale.getDefaul……

------解决方案--------------------
+1这种正则表达式好。
探讨
for example

Java code
double d = 199.999;
String s = String.valueOf(d).replaceAll("(\\d+)[.](\\d)\\d+", "$1,$2");
System.out.println(s);

------解决方案--------------------
首先部分:
float scale = 34.236323; 
DecimalFormat fnum = new DecimalFormat("##0.0"); 
String dd=fnum.format(scale); 
System.out.println(dd); 
然后部分:replace(".",",")
  相关解决方案