社区
C#
帖子详情
decimal转化为single(float)
hyh2005888123
2009-04-13 11:12:35
在把decimal转化为single时,用Decimal.ToSingle(),数值结果完全变了,哪位大哥知道更好的方法,可以让数值大小相符!!
问题2:在Matlab里,如何把一个single类型的矩阵保存为2进制格式,Matlab的single与.net里的single相同吗??
...全文
564
7
打赏
收藏
decimal转化为single(float)
在把decimal转化为single时,用Decimal.ToSingle(),数值结果完全变了,哪位大哥知道更好的方法,可以让数值大小相符!! 问题2:在Matlab里,如何把一个single类型的矩阵保存为2进制格式,Matlab的single与.net里的single相同吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
junyi2003
2009-04-13
打赏
举报
回复
从普通程序员的角度来说, 这类转换肯定是先保证整数位的。然后才考虑小数点后的精度。
写C#之类的系统函数大多都是普通程序员出身,有时候写得挺出色,有时候写得不如人意。不如人意的时候,你就自己写一个符合自己要求的咯。 -.-
gqs2105
2009-04-13
打赏
举报
回复
[Quote=引用 4 楼 junyi2003 的回复:]
一个128位的,一个才32位。精度和数据表达范围,差远了。 你先转成double看看.......实在不行就迂回曲折一下。
[/Quote]
请看5楼我的回复,
存储在decimal中的数值精度越高在转化成float或double时,产生的误差就越大
gqs2105
2009-04-13
打赏
举报
回复
精度指的是整数位+小数位的个数,
当整数位不为0时
例如 5.666666666666666666666666666666 精度是31
保存到double中时由于超出了double本身的精度范围所以会舍位,
得到5.66666666666667 精度15 有效数字14(最后的7是4四舍五入的)
保存到float中
得到5.666667 精度7 有效数字6 (最后的7是4四舍五入的)
保存到decimal中
得到5.666666666666666666666666667 精度 28 有效数字27 (最后的7是4四舍五入的)
当整数位为0时
例如 0.5666666666666666666666666666666 精度是32
保存到double中时由于超出了double本身的精度范围所以会舍位,
得到0.566666666666667 精度16 有效数字15(最后的7是4四舍五入的)
保存到float中
得到0.5666667 精度7 有效数字6 (最后的7是4四舍五入的)
保存到decimal中
得到0.5666666666666666666666666667 精度 29有效数字28(最后的7是4四舍五入的)
junyi2003
2009-04-13
打赏
举报
回复
一个128位的,一个才32位。精度和数据表达范围,差远了。 你先转成double看看.......实在不行就迂回曲折一下。
gqs2105
2009-04-13
打赏
举报
回复
类型 大致范围 精度 .NET Framework 类型
double ±5.0×10−324到±1.7×10308 15到16 位 System.Double
类型 大致范围 精度 .NET Framework 类型
float ±1.5×10-45to±3.4×1038 7 位 System.Single
类型 大致范围 精度 .NET Framework 类型
decimal ±1.0×10e−28至±7.9× 10e28 28到29 System.Decimal
hyh2005888123
2009-04-13
打赏
举报
回复
这个我懂,但误差不可能差几个数量级啊!!
gqs2105
2009-04-13
打赏
举报
回复
A1: decimal转成float或double数值会产生误差
float或double装成decimal时数值不会产生误差
原因:decimal与另外两种类型的存储方法不同
labview_32位单精度浮点数转定点小数
labview_32位单精度浮点数转定点小数,亲测可用(Own use labview to build 32-bit
single
precision
float
ing point
decimal
turn, pro-test available)
mysql
float
数据类型和
decimal
数据类型
我们知道在MySQL中有3种类型可以表示实数,分别是
float
,double和
decimal
。关于如何合理得使用这三种类型,网上的答案也层出不穷。但是究竟该选择哪一种类型,好像并没有统一的答案,接下来,将通过一个例子来说明...
谈谈MySQL如何选择
float
, double,
decimal
谈谈MySQL如何选择
float
, double,
decimal
MySQL中我们应该如何选择
Float
,Double,
Decimal
?
选择
float
或者double或者
decimal
有时候也要看场景,比如我们可以用double存储一个小商铺的季度营业额(几千万),单独用double存储的时候没有问题,当多个季度,多个年份算总3年内的营业额是,就会出现问题,再也算...
MySQL如何选择
float
, double,
decimal
MySQL如何选择
float
, double,
decimal
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章