C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了关于数据丢失的警告c / c大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_675_0@@H_404_1@我对可能的数据丢失有一个温和的警告

我记得,如果float有比int更大的精度.那么如果我从较小的数据类型(int)转换为更大的数据类型(float),那么数据如何丢失?

解决方法

因为浮点数不精确.即使浮点数的最大值高得多,也不能表示int可以持有到float中的每个可能的值.

例如,运行这个简单的程序:

#include <stdio.h>

int main()
{
 for(int i = 0; i < 2147483647; i++)
 {
  float value = i;
  int ivalue = value;
  if(i != ivalue)
   printf("Integer %d is represented as %d in a float\n",i,ivalue);
 }
}

你会很快看到有数千个整数不能被表示为浮点数.例如,16,777,219和16,221之间的所有整数表示为16,220.

再次编辑运行上面的程序表示有2,071,986,175个正整数,不能精确地表示为浮点数.这让你大概只有一亿正则整数适合浮动.这意味着当将它放入浮点数时,只有21中的整数是正确的.

我预计数字对于负整数是相同的.

大佬总结

以上是大佬教程为你收集整理的关于数据丢失的警告c / c全部内容,希望文章能够帮你解决关于数据丢失的警告c / c所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。