VS2013 c语言基础问题

问题描述

VS2013 c语言基础问题

int i;
float f;
f = 123.59;
i = 30;
printf("%f",f-i);
打印出来的结果是93.589996啊,怎么不是93.59

解决方案

因为浮点型的数据在计算机中的存储,不是很精确,只能保证一定的精度,当一个数学运算式中包含有不同精度的数时,类型会自动转换,你的程序中
有浮点型和整型数,整型会自动转换为浮点型,所以结果也是浮点 型的,你没有显示的指定要几位精度,所以结果只是个大概准确的数值

解决方案二:

i先被转成float型,变成0.3*10的2次方的的2进制形式,即0.01001......的1010次方,0.3不能被完全表示,因此失值

解决方案三:

把printf("%f",f-i);改成printf("%.2f",f-i);

解决方案四:

在你的f-i中,i是Int型会先被自动转换为float型进行计算

解决方案五:

float格式默认输出六位小数

解决方案六:

正如楼上所言,是整型和浮点数据存储问题,关于这样的问题就不应该在停留在数学符号上,而是数据在计算机上如何存储实现的~是计算机数据存储问题,所有的数据都会转会成门电路的空间上的逻辑组合和时间上的时序组合~都会用电平高低来表示逻辑01,来表达各种数据、各种信息~

时间: 2024-09-11 03:17:47

VS2013 c语言基础问题的相关文章

c语言-VS2013 C语言基础问题

问题描述 VS2013 C语言基础问题 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { printf("t#n"); printf("###n"); printf("tbb#####n"); return 0; } 为什么最后#####在第二行? 解决方案 t是制表符,你输入一个t,就是一个制表符,b是退格键,你输入连续的两个bb就是连续两次的退格,这样,一

【软考教程】程序设计语言基础

继续软考教程的学习,在第1章,我们主要是对计算机的组成和工作原理做了一定了解,可以说,在他的带领下,我们对计算机硬件方面的知识,有了更加坚实的基础. 第2章,程序设计语言基础知识.不看内容,光从标题来看,并不会觉得陌生."程序设计语言",至今,我们已经接触过不止一种了,从最初的VB.到后来的VB.NET.C#.C++,软考前个阶段,我们还见到了早有耳闻的Java世界. 那么,下面就跟随着"设计语言"的脚步,一起发现编程路上美丽的风光吧. 想要对程序设计语言有个宏观上

HTML进阶应用技巧(一)HTML语言基础

技巧 一.为什么要学习HTML? 近两年来,许多公司开发出了图形化的HTML开发工具,使得网页的制作变得非常简单.如微软公司推出的 Microsoft FrontPage, Adobe公司推出的 Adobe Pagemill, Micromedia公司推出的Dreamweaver等编辑工具,都被称为"所见即所得"的网页制作工具.这些图形化的开发工具可以直接处理网页,而不用书写费劲的标记.这使得用户在没有HTML语言基础的情况下,照样可以编写网页.这时,编写HTML文档的任务由开发工具替

HTML语言基础

一.为什么要学习HTML? 近两年来,许多公司开发出了图形化的HTML开发工具,使得网页的制作变得非常简单.如微软公司推出的 Microsoft FrontPage, Adobe公司推出的 Adobe Pagemill, Micromedia公司推出的Dreamweaver等编辑工具,都被称为"所见即所得"的网页制作工具.这些图形化的开发工具可以直接处理网页,而不用书写费劲的标记.这使得用户在没有HTML语言基础的情况下,照样可以编写网页.这时,编写HTML文档的任务由开发工具替你完成

[转贴]Oracle PL/SQL语言基础

oracle|sql语言 [转贴]Oracle PL/SQL语言基础 Oracle PL/SQL语言基础   PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序.    PL/SQL的优点    从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有

Oracle PL/SQL语言基础

oracle|sql语言 Oracle PL/SQL语言基础  2002-8-23   Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及如何设计并执行一个PL/SQL程序. PL/SQL的优点 从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独

C++语言基础-入门简介

C++是个强大的语言,可以用于做别的语言做不了的工作.但是,这种强大功能是有代价的.开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机.这里用最简短的篇幅介绍C++语言基础.C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚.读者学完本书并使用C++ Builder一般时间之后,最后对C++语言再作更深入的了解. C++可以最充分地利用面向对象编程(OOP)的优势.OOP不只是一个新名词,而有它的实际意义,可以生成可复用的对象.新术语 对象(object),

c-关于C语言基础概念问题

问题描述 关于C语言基础概念问题 刚才迷茫在static的使用,于是看到下面的解释觉得好棒!我在看的C语言程序设计并没有如此详细的解释,谁能推荐一本类似于解释原理的书,就像下图中那种的,告诉你一些名词解释,代码被读取后在系统中如何被分析,被使用?感激之情将溢于言表! 解决方案 以前在图书馆看到过一本叫做 你必须要知道的C256个问题 (大概是叫这个) 里面都是一些很基础的名词解释 或者一些容易弄混淆的知识点 解决方案二: static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量.有的

(cljs/run-at (->JSVM :browser) "语言基础")

前言  两年多前知道cljs的存在时十分兴奋,但因为工作中根本用不上,国内也没有专门的职位于是搁置了对其的探索.而近一两年来又刮起了函数式编程的风潮,恰逢有幸主理新项目的前端架构,于是引入Ramda.js来疗藉心中压抑已久的渴望,谁知一发不可收拾,于是抛弃所有利益的考虑,遵循内心,好好追逐cljs一番:D  cljs就是ClojureScript的缩写,就是让Clojure代码transpile为JavaScript代码然后运行在浏览器或其他JSVM上的技术.由于宿主环境的不同,因此只能与宿主环