永发信息网

c++中怎样去除浮点型变量误差

答案:5  悬赏:70  手机版
解决时间 2021-05-07 00:27
  • 提问者网友:未信
  • 2021-05-06 09:49

在我写的一个程序中,要求x每次增都增加0.01。

x的范围是-100~100

可是每次都是-100+0.01=99.989999999999995

而不是99.999999999999999

请问这样应该怎么处理

我用的是dev c++ 5.0,下面是我的程序:

#include<stdio.h>
#include<stdlib.h>
double x=-100;
int main()
{  
    x=x+0.01;
    printf("%.100f\n",x);
    system("pause");
    return 0;
}

最佳答案
  • 五星知识达人网友:过活
  • 2021-05-06 10:51
这个不是错误,是误差,不可避免的。所以平常输出的时候最好要加上输出小数点后几位,这样就基本上正确了。
全部回答
  • 1楼网友:煞尾
  • 2021-05-06 13:40
把double改成float试一下~~~要不就强转成float试试
  • 2楼网友:鱼芗
  • 2021-05-06 12:54
采用字符串形式输入,然后把数据以整型存储,并保存小数点的位置,可以用结构体来保存。然后自己写加减乘除函数就可以了。和楼上说的差不多。呵呵
  • 3楼网友:摆渡翁
  • 2021-05-06 12:17
自己写一个算法,用数组存储数据,做十进制运算就OK了。你可以找个金融库,里面有封装好的算法
  • 4楼网友:山有枢
  • 2021-05-06 12:01
一、C语言的起源 C 语言是1972年由美国的Dennis Ritchie设计发明的, 并首次在UNIX操作系统 的 DEC PDP-11 计算机上使用。 它由早期的编程语言 BCPL( Basic Combind Programming Language) 发展演变而来。在1970年, AT&T 贝尔实验室的 Ken Thompson根据BCPL语言设计出较先进的并取名为 B的语言, 最后导了C 语言的问世。 随着微型计算机的日益普及, 出现了许多C 语言版本。由于没有统一的标准, 使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况, 美国国家标准 研究所(ANSI)为C 语言制定了一套ANSI标准, 成为现行的C语言标准。 二、C 语言的特点 C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的 功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。 用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象PC- DOS 、 WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点: 1. C是中级语言 它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象 汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2. C是结构式语言 结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的 信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调 试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循 环、条件语句控制程序流向, 从而使程序完全结构化。 3. C语言功能齐全 C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另 外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑 判断功能也比较强大, 可以实现决策目的。 4. C语言适用范围大 C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于 多种机型。 三、 Turbo C 概述 1 Turbo C 的产生与发展 Turbo C 是美国Borland 公司的产品,Borland公司是一家专门从事软件开发、 研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。该公司在1987年首次推出Turbo C 1.0 产品, 其中使用了全然一新的集成开发环境, 即使用了一系列下拉式菜单, 将文本编辑、程序编译、连接以及程序运行一体化, 大大方便了程序的开发。1988 年, Borland 公司又推出Turbo C1.5版本, 增加了图形库和文本窗口函数库等, 而 Turbo C 2.0 则是该公司1989年出版的。Turbo C2.0在原来集成开发环境的基础上 增加了查错功能, 并可以在Tiny模式下直接生成.COM (数据、代码、堆栈处在同一 64K 内存中) 文件。还可对数学协处理器 (支持8087/80287/80387等)进行仿真。 Borland 公司后来又推出了面向对象的程序软件包Turbo C+ + , 它继承发展 Turbo C 2.0 的集成开发环境, 并包含了面向对象的基本思想和设计方法。 1991年为了适用Microsoft 公司的Windows 3.0 版本, Borland 公司又将Turbo C++ 作了更新, 即Turbo C 的新一代产品Borlandc C++也已经问世了。 2 Turbo C 2.0基本配置要求 Turbo C 2.0可运行于IBM-PC系列微机, 包括XT, AT及IBM 兼容机。 此时要求 DOS 2.0或更高版本支持, 并至少需要448K的RAM, 可在任何彩、单色80列监视器上 运行。支持数学协处理器芯片, 也可进行浮点仿真,
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯