处理8位float类型数据保证精度

在工作时需要把一个二进制文件转换,然后保存到数据库。其中有float型的数据。但是这个数据经常是长达8位的整数,在处理时发现会出现精度丢失的情况。请问如何在不使用科学记数法的同时保证这个数据的精度。

3个回答

用String或者Bigdecimal来保存.需要计算的时候再转化为float

Henzel
灰狼Allan 回复qq_21955687: 使用BigDecimal.valueOf(float/double),或者new BigDecimal(String)方法创建BigDecimal,不要使用new BigDecimal(float/double)方法,否则会出现精度丢失问题。
4 个月之前 回复
u012309389
u012309389 回复qq_21955687: BigDecimal不会丢失精度的,将数字转化成字符串用valueOf方法就不会转换科学计数法
2 年多之前 回复
qq_21955687
qq_21955687 试过。用String的话会自动转换成科学计数法,用BigDecimal会丢失精度。
2 年多之前 回复

建议使用BigDecimal类来保存

qq_21955687
qq_21955687 试过。用BigDecimal会丢失精度,比如46546547会变成46546548
2 年多之前 回复

数据库中用decimal类型保存数据

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问