java - 在不丢失精度的情况下将浮点数转换为字符串 - Java
问题描述
我想将浮点数转换为字符串而不丢失其精度。
当我将40075016.68557849转换为字符串时,它被表示为4.0075016E7。
我需要让它与输入的值完全相同,即“ 40075016.68557849 ”。
我试过 String.valueOf(), Float(40075016.68557849f).toString() 但没有任何东西以正确的方式工作。
解决方案
BigDecimal
如果您需要精确地维护小数,则不能使用浮点类型float
/Float
和double
/ Double
。浮点技术牺牲了执行速度的准确性。他们可以容纳的数字大小也有限制。
而是使用BigDecimal
. 慢得多但准确。
new BigDecimal( "40075016.68557849" )
推荐阅读
- powershell - 从 AD 和事件查看器匹配 SID
- php - codeigniter中的内部连接查询
- python - 创建按字母升序的列表
- git - 如何在合并期间提交合并分支
- spring - 如何使spring mvc将json数组转换为arraylist(带上传文件的表单提交)?
- javascript - 在反应js中单击链接时调用函数
- regex - 在 python 中使用带有列表理解的正则表达式
- ios - iOS 使用新的隐私设置强制重启应用
- java - 如何将模型类型列表中的数据添加到数组中
- sql-server - RAMDisk 和物理磁盘上的 sql server tempDB 文件