java中怎么获取保留小数点后两位,不进行四舍五入,不用截取的方式,我截取了,但由于长度问题总是报错

2024-12-12 00:59:18
推荐回答(5个)
回答1:

JDK6.0版本前有个方法System.out.printf("%.2f",3.141592)可以保留小数点后两位
而现在则没有了。如下代码你可以参考下:
double num=23.1415926;
String temp=Double.toString(num);
double newNum=Double.parseDouble(temp.substring(0,temp.indexOf('.')+3));
先把num转成字符串类型,然后截取,一般没什么错误的。。。。

回答2:

下边是你想要的程序,是按照你说截取做的,你既然用截取做了,报错是你程序有漏洞,长度没找对,你应该试着去调试的程序找出错误这样对你很有帮助,而且进步很快的。你看看这个吧。
public class sss {

public static void main(String[] args) {

double d1 = 122.2;
double d2 = 122.2323;
double d3 = 123;
test(d1);
test(d2);
test(d3);
}

public static void test(double d)
{
String str = Double.toString(d);
int a= str.indexOf(".");
if(-1 != a)
{
if((str.length()-a-1) >= 2)
{
str = str.substring(a+1,a+3);
}
else
{
str = str.substring(a+1,str.length());
}
System.out.print(str);
}
}
}

回答3:

DecimalFormat df = new DecimalFormat("0.00");
double d = 123.9078;
String db = df.format(d);
System.out.println(db);
这个行不

回答4:

这个简单的方式还是截取,你截取的时候做好长度判断,肯定能成功的。

回答5:

连个悬赏分都没有么????你给50悬赏分,我立刻给你一个200%好用、可用、无bug的给你,附带样例测试。顺便一提,楼上的都不行,他们的都有bug,而且都是四舍五入型的,不满足你的需求
1楼:太复杂
3楼:四舍五入了
4楼:最明显的bug,如果小数只有一位肿么办?