社区
MySQL
帖子详情
float和double类型的奇怪问题,高手请进
wweijie
2003-07-24 10:47:58
我将8E16存入一个double类型则存储为80000000000000000正常,
如果存到float字段,则变为80000002180513792,
为什么会这样?
...全文
81
3
打赏
收藏
float和double类型的奇怪问题,高手请进
我将8E16存入一个double类型则存储为80000000000000000正常, 如果存到float字段,则变为80000002180513792, 为什么会这样?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
trainee
2003-08-01
打赏
举报
回复
我进行了测试:
1。若FLOAT字段,有标明NUMBER SCALE时 ,比如FLOAR(12,2)
插入8E16, 则变为80000002180513792
2。若不注明NUMBER SCALE,
插入8E16, 则变为8000000000000000
插入1234567890123456 , 则变为 1.234567E16
3. 其他的数据库POSTGRESQL
不能注明NUMBER SCALE, 效果同2
一个4字节的存储位,若是整型字节,最大数为4294967296
如是浮点数,它还要分成两部分,一部分为精度,一部分为长度.
精度可想而知.
wweijie
2003-07-30
打赏
举报
回复
FLOAT, DOUBLE 都是浮点类型, 在计算机里存储的是近似值,这个大家都知道。但我认为误差这么大是不能接受的。不知道其它数据库是否也存在这个问题。
trainee
2003-07-25
打赏
举报
回复
FLOAT, DOUBLE 都是浮点类型, 在计算机里存储的是近似值,
DOUBLE(8BYTES)的精度比FLOAT(4BYTES)高。
精度越高,存储位越大,
看你应用的需求,选择合适的数据类型。
如果你要很高的精度(比如货币之类),可以选择DECIMAL类型
代价是存储位和速度的开销。
结构中使用double变量的
奇怪
问题
今天遇到一个比较
奇怪
的
问题
:定义了一个结构:typedef struct tagDFIAlarmLimit //{ int station_no; double max_freq; //频率上限 double min_freq; //频率下限 double dbwin_height;
Android
float
四舍五入没有入的一个
问题
在写代码过程中处理数据的四舍五入的四舍五入是一个很常见的
问题
,今天这篇博客的主要目的是描述处理四舍五入并保留2位小数遇到的一个比较
奇怪
的
问题
。 我们常用的处理数据的四舍五入并保留2位小数的方式有如下几种, 以0.195为例: Math方式: System.out.println(Math.round(0.195 * 100) / 100.f); //输出0.2 复制代码 BigDecimal...
float
的精度
问题
今天发现了一个有意思的
问题
,用
float
.Parse("-0.03"); 得到的
float
型数据是-0.03,但是乘上100赋值给一个整数就成了-2.
float
fval =
float
.Parse("-0.03"); int ival = (int)(fval*100); 如果使用double就没
问题
。在64位的win7系统上也没
问题
。
float
型和double型数据的存储方式
float
型和double型数据的存储方式 对于浮点类型的数据采用单精度类型(
float
)和双精度类 型(double)来存储,
float
数据占用32bit,double数据占用64bit。通常
float
可以保证十进制科学计数法小数点后6位有效精度和第7位的部分精度 double可以保证十进制科学计数法小数点后15位有效精度和第16位的部分精度。 因为
float
和double的精度是由尾...
【你真的了解double和
float
吗】
【javase基础知识】-
float
和double的一些知识详解
MySQL
57,062
社区成员
56,759
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章