String x = "39.33";
String result ;
Double x1 = new Double(x);
System.err.println("value :"+ x1);
String[] parts = x1.toString().split("\\.");
if(parts != null )
{
if((Integer.parseInt(parts[1])) > 0)
{
result =x1;
}
else
{
result= parts[0];
}
}
请告诉我格式化/拆分价值的最佳方式: 我的需要是......
if x is 39
so x1 is 39.0
so i need result =39
if x is 39.33
so x1 is 39.33
so i need result =39.33
我不想使用拆分或条件检查if((Integer.parseInt(parts[1])) > 0)
..请告诉我最好的方法吗?
答案 0 :(得分:1)
如果将double转换为int,则忽略小数位。
对于这个问题,它会是这样的:
String result;
String x = "39.33";
Double x1 = new Double(x);
int xPre = x1.intValue();
if ( x1 > xPre) {
result = x1;
} else {
result = Integer.toString(xPre);
}
答案 1 :(得分:1)
试试这个:
Double d = Double.parseDouble("35.0");
String result = NumberFormat.getNumberInstance().format(d.doubleValue())
System.out.println(result);
答案 2 :(得分:0)
您需要做的就是将数字读取为double并将其强制转换为int,这将有效地截断数字。
答案 3 :(得分:0)
你可以做到
String x = "39.33";
long l = (long) Double.parseDouble(x); // == 39
这将导致l
成为double的整数部分。 (假设数量少于9亿亿)
如果你真的想使用分割,你可以做以下稍微慢一点但如果数字太大会抛出异常。
long l = Long.parseLong(x.split("\\.")[0]);
答案 4 :(得分:-1)
public static void main(String[] args) {
Double x = new Double("39.33");
Double y = new Double("39.0");
printDouble(x);
printDouble(y);
}
public static void printDouble(Double dbl){
System.out.println(dbl.toString().replaceAll("[0]*$", "").replaceAll(".$", ""));
}