有没有办法在java double中获得小数点后的位数?
发布时间:2020-12-15 05:22:10 所属栏目:Java 来源:网络整理
导读:我正在开发 Java / Groovy程序.我有一个双变量,它包含一个用户输入的数字.我真正想知道的是用户在小数点右侧键入了多少个数字.就像是: double num = 3.14num.getPlaces() == 2 当然,你不能用double来做这个,因为那是使用IEEE浮点数而且它都是近似值. 假设我
我正在开发
Java / Groovy程序.我有一个双变量,它包含一个用户输入的数字.我真正想知道的是用户在小数点右侧键入了多少个数字.就像是:
double num = 3.14 num.getPlaces() == 2 当然,你不能用double来做这个,因为那是使用IEEE浮点数而且它都是近似值. 假设我无法获取用户键入的字符串,但只能访问已存储的值的double,有没有办法可以通过BigDecimal擦除那个double,或者某些东西可以得到“真实”的数字小数位? (当双重显示在屏幕上时,它会正确,所以我认为有一种方法至少可以猜到吗?) 解决方法
不,你不能……因为用户可以输入许多不同的字符串,所有字符串都将被解析为相同的值.
“真实”数字几乎肯定比用户输入的数字小一些.例如,3.14存储为3.140000000000000124344978758017532527446746826171875.我认为您不想将其显示给用户. 为了使问题更清楚,您无法从double值告诉用户是否实际输入了: 3.14 3.140 3.140000 3.14000000000000012434 这四个字符串都会给你相同的值 – 这应该很明显你不可能回到用户键入的内容. 如果可能的话,更改解析代码并始终使用BigDecimal. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 在没有closeFuture()的情况下在Netty中运行多个服务
- java – 将自定义信息添加到JBehave HTML报告中
- Netbean错误缺少分号(java评论)
- 对于一个运行时间为100n*n的算法,要使其在同一台机器上,在
- java – 如何在oracle 11g快递版中创建新数据库?
- 我们如何在java.util.function.Function lambda中有2个参数
- Java_Properties
- Java DriverManager.getDriver()方法:选择一个适当的驱动程
- java – 在Play中启用断言!发展模式
- Java For循环使用单个变量迭代100 64 36 16 4 0 4 16 36 64