JAVA double string的转换

发布时间:2019年04月05日 阅读:227 次

1 sprintf 的使用

import java.util.*;

public class Main

{

public static void main(String[] args) {

Formatter fmt = new Formatter();

double pi  =3.1415926;

fmt.format("%.3f",pi);

System.out.println( fmt.toString());

}


}

2

String转double失去精度问题

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35717984/article/details/81144981

最近遇到一个坑,19.9的字符串转double变成19.89,坑死我了。现在把更改后的代码贴出来

String s = "19.9";
BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s));
// 将temp乘以100
temp = temp.multiply(BigDecimal.valueOf(100));
int sum = temp.intValue();
System.out.println(sum);

这样亲测不会失去精度。最后说一句,细节很重要,特别是字符串转其他类型的时候。

3.

Java 将String转Double、Double类型保留2位小数

将Double类型的数据保留2位小数: 
Double a = 2.34566; 
BigDecimal bd = new BigDecimal(a); 
Double d = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 
d输出就是2.35, 注意会四舍五入

将String转Double,并保留2位小数: 
String a = “6.145”; 
Double d= Double.parseDouble(a); 
DecimalFormat df = new DecimalFormat(“0.00”); 
String s = df.format(d); 
s输出就是6.15,注意会四舍五入

4.

java类型转换,例如String转double保留N位小数

https://blog.csdn.net/u010102390/article/details/79388295


Tag:
相关文章

发表评论: