社区
.NET Framework
帖子详情
什么时候需要用decimal类型? 似乎float和double就足够了
togerr
2013-08-28 09:08:33
既然float/double能够表示不同精度/范围的浮点数了。为什么还要弄个decimal类型出来呢? 它存在的必要性在哪里呢?
谢谢。
...全文
485
3
打赏
收藏
什么时候需要用decimal类型? 似乎float和double就足够了
既然float/double能够表示不同精度/范围的浮点数了。为什么还要弄个decimal类型出来呢? 它存在的必要性在哪里呢? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
申江渔夫
2013-08-28
打赏
举报
回复
带小数的用decimal比float/double好。
EnForGrass
2013-08-28
打赏
举报
回复
decimal 表示 128 位数据类型。 同浮点型相比,decimal 类型具有更高的精度和更小的范围,更适合定义价格,金额等 float很容易丢失精度 参考MSDN
http://msdn.microsoft.com/zh-cn/library/vstudio/364x0z75.aspx
CqCoder
2013-08-28
打赏
举报
回复
1、decimal 表示的数值更大 2、float涉及小数点后面位数过多 相加减会丢失数据 暂时想到这些
MySQL中
Decimal
类型
和
Float
Double
的区别(详解)
MySQL中存在
float
,
double
等非标准数据
类型
,也有
decimal
这种标准数据
类型
。 其区别在于,
float
,
double
等非标准
类型
,在DB中保存的是近似值,而
Decimal
则以字符串的形式保存数值。
float
,
double
类型
是可以存浮点数(即小数
类型
),但是
float
有个坏处,当你给定的数据是整数的时候,那么它就以整数给你处理。这样我们在存取货币值的时候自然遇到问题,我的default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12。 幸好mysql提供了两个数据
类型
:
decimal
,这种数据
类型
可以轻松解决上面的问题:
decimal
类型
被 MySQ
数据库 数据
类型
float
到C#
类型
decimal
,
float
数据
类型
转化无效
今天运行系统突然出错,数据
类型
转化无效,错误在system.data.sqlclient.get_
decimal
()方法,初步估计是数据库的
float
类型
转换为c#的
decimal
类型
时出错了,实体类使用的是
decimal
?
类型
,心想就算数据库里的数值是空,也不能出现转换错误啊。 网上百般搜索,很多人遇到类似情况,多数是直接去
float
类型
时候出错,如(
float
)dr[0],后来看到有说应该是先转化成
double
,然后在转化成
float
就可以了 尝试了一下把实体类的
decimal
?
类型
的字段改成
double
?
类型
,OK. 您可能感兴趣的文章
c#中
decimal
,
double
,
float
的区别.doc
c#中
decimal
,
double
,
float
的区别.doc
MySQL中
decimal
类型
用法的简单介绍
MySQL中支持浮点数的
类型
有
FLOAT
、
DOUBLE
和
DECIMAL
类型
,
DECIMAL
类型
不同于
FLOAT
和
DOUBLE
,
DECIMAL
实际是以串存放的。
DECIMAL
可能的最大取值范围与
DOUBLE
一样,但是其有效的取值范围由M 和D 的值决定。如果改变M 而固定D,则其取值范围将随M 的变大而变大。 对于精度比较高的东西,比如money,建议使用
decimal
类型
,不要考虑
float
,
double
, 因为他们容易产生误差,numeric和
decimal
同义,numeric将自动转成
decimal
。
DECIMAL
从MySQL 5.1引入,列的声明语法是
DECIMAL
(M,D)。
MySQL数据
类型
中
DECIMAL
的用法实例详解
MySQL数据
类型
中
DECIMAL
的用法实例详解 在MySQL数据
类型
中,例如INT,
FLOAT
,
DOUBLE
,CHAR,
DECIMAL
等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据
类型
中的
DECIMAL
类型
的作用和用法。 一般赋予浮点列的值被四舍五入到这个列所指定的十进制数。如果在一个
FLOAT
(8, 1)的列中存储1. 2 3 4 5 6,则结果为1. 2。如果将相同的值存入
FLOAT
(8, 4) 的列中,则结果为1. 2 3 4 6。 这表示应该定义具有
足够
位数的浮点列以便得到尽可能精确的值。如果想精确到千分之一,那就不要定义使该
类型
仅有两位小数。 浮点值的这种处理在My
.NET Framework
17,740
社区成员
24,334
社区内容
发帖
与我相关
我的任务
.NET Framework
.NET技术 .NET Framework
复制链接
扫一扫
分享
社区描述
.NET技术 .NET Framework
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章