博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java double转string
阅读量:2053 次
发布时间:2019-04-28

本文共 1206 字,大约阅读时间需要 4 分钟。

项目github地址:

欢迎大家star,留言,一起学习进步

java中,double转string可以用Double.toString(d)的方式。但是,这种方式有隐藏的坑,请大家看仔细了:

package hello;public class DoubleToString {        public static void test1(double dou) {        String dou_str = Double.toString(dou);        if (dou_str.equals("20160101")) {            System.out.println("YES!");        } else {            System.out.println("NO!");        }    }        public static void main(String[] args) {        double dou = 20160101;        test1(dou);    }}

当运行上述代码以后,控制台华丽丽地输出:

NO!

我们在第六行后面打印出dou_str:

2.0160101E7

原来jvm这货将double用科学计数法表示了double,怪不得转成string以后变了样。。。

将上面代码修改如下:

package hello;import java.text.NumberFormat;public class DoubleToString {	    public static void test2(double dou) {        Double dou_obj = new Double(dou);        NumberFormat nf = NumberFormat.getInstance();        nf.setGroupingUsed(false);        String dou_str = nf.format(dou_obj);        System.out.println("dou_str is:" + dou_str);        if (dou_str.equals("20160101")) {        	System.out.println("YES!");        } else {        	System.out.println("NO!");        }    }		public static void main(String[] args) {		double dou = 20160101;		test2(dou);	}}

再运行,再输出,这下就OK了:

dou_str is:20160101YES!

转载地址:http://bublf.baihongyu.com/

你可能感兴趣的文章
一名云原生搬砖师的自白
查看>>
红帽宣布发布企业容器仓库开源项目 Quay
查看>>
跨平台构建 Docker 镜像新姿势,x86、arm 一把梭
查看>>
k8s v1.17 新特性预告: 拓扑感知服务路由
查看>>
彻底理解矩阵乘法
查看>>
使用 buildx 构建多平台 Docker 镜像
查看>>
Kubelet 中的 “PLEG is not healthy” 到底是个什么鬼?
查看>>
不懂OpenShift,不足以谈云计算!
查看>>
别让自己“墙”了自己
查看>>
让你的网站用上炫酷的中文字体
查看>>
使用 font-spider 对 webfont 网页字体进行压缩
查看>>
云原生服务网格 Istio 1.4 部署指南
查看>>
让 Linux 防火墙新秀 nftables 为你的 VPS 保驾护航
查看>>
Istio 1.4 部署指南
查看>>
贫苦家庭用户的 Envoy xDS 控制平面
查看>>
Kubernetes Pod 网络精髓:pause 容器详解
查看>>
Docker 技术鼻祖 Linux Namespace 入门系列:Namespace API
查看>>
使用 ebpf 深入分析容器网络 dup 包问题
查看>>
Kubelet 中的 “PLEG is not healthy” 到底是个什么鬼?
查看>>
超详细的网络抓包神器 Tcpdump 使用指南
查看>>