c中float数值为什么输出和输入的不一样?
定义a为float类型,赋值为100.255,用printf输出为100.254997。为什么?请高手解答!
float精度不够,换成double就行了 计算机在存储浮点数的时候精度本来就有问题,看下浮点数如何转化为二进制就会明白了~~ 百度一下“IEEE754标准” 100.255在存储的时候要转换成IEEE754标准的32位二进制串, 输出的时候再转成10进制浮点数。 存储的时候有误差。 浮点数默认输出是6位,并且存在一定的精度误差。 printf("%.3f",a); 可以限定输出浮点数a的三位小数. float类型在计算机中的存储结构是怎么样的,不知道楼主是不是关注过。如果认真看过这个知识点相信楼主肯定对自己到问题就知道为什么了。 请试试printf("%f\n",0.2+0.4);引用 请试试printf("%f\n",0.2+0.4); 6楼想表达什么?
相关问答:
写了个测试程序如下 struct hostent *hp; char AlarmDevIP[20]; int x2; hp = gethostbyname("www.google.com"); if (hp) {
......
如题,C/C++中的execl怎么调用写好的java程序, execl("/opt/java1.5/bin/java","MyClass",NULL); 这样的不行哦。 不会. 运行java程序 找工具查看一下那个程序的命令行 搜索下:jni ......
本人正在用Java做一个C/S架构的项目, 可是由于项目比较大,前期对架构的设计尤其重要,因为后期可能随时会加个功能或者去掉某些功能。 所以特地寻求如何设计C/S的架构使程序更加面向对象更加易于维 ......
帮帮忙,谢谢~ 1. Write a program to perform a topological sort on a graph. 2. Write a program to solve the single‐source shortest‐path problem (Dijkstra algorithm). 3. Write a program ......
思路:要用c#生成一个播放机的播放列表的xml,例如: <daty datys='2010-04-05' datye='2010-05-01' > //这是播放的日期段 <time times='01:12:00' timee='02:30:00'> ......