float、double计算中精度丢失的处理
来源:互联网 发布:知左手边那个字怎么读 编辑:程序博客网 时间:2024/06/12 05:45
参考http://blog.csdn.net/luweicheng24/article/details/77800688
import java.math.BigDecimal;public class T {public static void main(String[] args) { String aaString="37.10"; System.err.println(Double.valueOf(aaString)); System.err.println(Float.valueOf(aaString)); float amount =37.10f; float amount2 =amount*100; float amount4 =amount*100f; long amount3 =(long)amount2; System.err.println(amount); System.err.println(amount2); System.err.println(amount3); System.err.println(amount4);// BigDecimal bigDecimal1 = new BigDecimal(Float.toString(amount)); System.err.println(bigDecimal1); BigDecimal bigDecimal2 = new BigDecimal(Float.toString(100)); System.err.println(bigDecimal2); BigDecimal result = bigDecimal1.multiply(bigDecimal2); System.err.println(result); long longValue =result.longValue(); System.err.println(longValue);}}
37.1
37.1
37.1
3709.9998
3709
3709.9998
37.1
100.0
3710.00
3710
1、String 转 float不会丢失精度;2、float乘法计算会丢失精度、乘积总是在一个正确的结果左右偏0.0000**1,这是因为当两个float数值相乘时,底层采用转换成二进制来进行乘法的运算3、采用BigDecimal 可以实现高精度运算
阅读全文
0 0
- float、double计算中精度丢失的处理
- java中double、float类型计算精度丢失问题
- java中float/double计算丢失精度解决方案
- float、double精度丢失
- 关于float,double的精度丢失(一)
- 关于double,float的精度丢失(二)
- 关于float,double的精度丢失
- 关于float,double的精度丢失
- 精确计算java中float和double的精度
- iOS - Json解析精度丢失处理(NSString, Double, Float)
- C#中float向double转换时会发生精度丢失
- Java中float,double为什么会丢失精度。
- JAVA程序中Float和Double精度丢失问题
- JAVA程序中Float和Double精度丢失问题
- java中double和float精度丢失问题及解决方法
- Java中double和float精度丢失问题及解决方法
- java中double和float精度丢失问题及解决方法
- java中的float double精度丢失的解决方案
- pacemaker实现apache高可用
- LPWAN战火不止 封闭区域LoRa更具优势
- Bi-shoe and Phi-shoe
- 改变android状态栏颜色
- leetCode- Maximum Subarray
- float、double计算中精度丢失的处理
- Ubuntukylin16.04.2下anaconda2与anaconda3共存
- Android AIDL双向通信
- 走向程序猿的第一步
- poi导出word
- bzoj 3944 Sum 杜教筛
- css设置小图标
- Linux的帧缓冲(Frame Buffer)之一:原理及控制参数
- HDU 4035 maze 概率期望dp