确保你的 float,double 值 不被 改变
来源:互联网 发布:linux怎样提取dsdt 编辑:程序博客网 时间:2024/05/18 13:26
最近在做一套系统的时候,发现数据不对,原来是float的初始值已经被改变了。
float f1 =1543.56f;
调试跟踪的时候发现 f1 = 1543.5601了。
分析原因:
1.float 在初始化的时候进行了运算,是2e次幂。f1 = 2048.64f就不会有这个问题。
2.超出float 的精度的时候,float也会做出处理,使你的值被改变。
解决办法:
1.自定义数据结构体,如C# 的Decimal等
2.采用大数计算方法。
为此,总结网上朋友的一些经验,自己写了一个Decimal,仅供大家参数 使用
- 确保你的 float,double 值 不被 改变
- java解决double和float精度不准确的问题
- float 和 double 运算不准确的思考
- int,float,double的边界值
- float--->double 的转换
- 关于Float你所不知道的
- 关于int,float,double与Integer、Float、Double的理解
- Java的float和double
- double,float的输出格式
- double和float的区别
- double float 类型的输出
- double和float的区别
- double和float的区别
- float与double的区别
- Float与Double的isNaN()
- Float与Double的isNaN()
- double与float的区别
- Float和Double的讲解
- 笔记(一) main函数
- Asterisk的SIP type和身份认证
- cannot find -lqte 解决方法
- RTP H264 NAL
- Eclipse快捷键大全
- 确保你的 float,double 值 不被 改变
- TC二次开发之ITK开发自学笔记(一)
- Linux下软件包的解压方式大全
- sstrip.c下载网址
- Continues Integration
- 理解MySQL——复制(Replication)(转)
- Linux操作系统上安装MYSQL数据库的方法
- linux下jdk安装 failed /usr/local/jdk1.6.0_10/jre/lib/i386/client/libjvm.so, because /usr/local/jdk1.6.0_10/jre/lib/i386/client/libj
- 权限