首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从无符号int转换到浮点数

从无符号int转换到浮点数
EN

Stack Overflow用户
提问于 2010-08-04 00:20:41
回答 4查看 21.5K关注 0票数 6
代码语言:javascript
复制
warning C4244: '=' : conversion from 'unsigned int' to 'float', possible loss of data  

难道浮点数不能处理int中的任何值吗?

代码语言:javascript
复制
unsigned int: 0 to 4,294,967,295  
float 3.4E +/- 38 (7 digits) 

Wiki:

浮点表示法比定点表示法的优点(及 (整数)表示是指它可以支持范围更广的值。

任何洞察力都会有帮助,谢谢。

http://msdn.microsoft.com/en-us/library/s3f49ktz%28VS.80%29.aspx

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-04 00:28:58

“无符号int”和“float”都使用32位来存储值。由于浮动的范围更大,它必然会牺牲一定的精度。这意味着有些未签名的int值不能在浮点数中准确表示。MSDN提供了更多细节。

票数 13
EN

Stack Overflow用户

发布于 2010-08-04 00:26:38

正如您在问题中所指出的,浮点数仅取7位数,而不是INT_MAX中的10位数。我相信这将是在转换时发出C4244警告的原因。

票数 3
EN

Stack Overflow用户

发布于 2010-08-04 00:31:57

来自维基百科

单精度,在C语言家族中称为“浮动”,在?中称为“实”或“实*4”?福特伦。这是一种占用32位(4字节)的二进制格式,其意义和精度为24位(大约7位十进制数字)。

由于int具有32位(通常)和浮点具有32位(部分保留为指数),有许多int值不能精确地用浮点类型表示。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3401722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档