首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >避免在Java Backingbean中尝试将字符串解析为浮点型时进行截断

避免在Java Backingbean中尝试将字符串解析为浮点型时进行截断
EN

Stack Overflow用户
提问于 2017-03-25 04:53:12
回答 1查看 118关注 0票数 -1

我正在尝试使用如下代码的一部分来解析类似于此"2123123.12"的字符串值

代码语言:javascript
运行
复制
String stringAmount = "2123123.12";
float amount = Float.parseFloat(stringAmount);

但是当我看到下一个值时:

代码语言:javascript
运行
复制
2123123.0

有什么想法吗。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-25 05:10:42

Java中,bit只能存储32个浮点数。它将数字存储为符号(-/+)为1 bit,指数为8 bits,分数为23 bits

现在,看看你的数字并打印出小数部分,

System.out.println(Integer.toBinaryString(2123123));

结果是23 bit,这意味着float没有足够的位来存储小数部分,因此,它截断了数字。

要存储整数,您需要使用double,它在Java中是64 bit,例如:

代码语言:javascript
运行
复制
String stringAmount = "2123123.12";
double amount = Double.parseDouble(stringAmount);
System.out.println(amount);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43008966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档