float浮点数有效数字只有6位,为什么不是7位?

如题所述

float的有效数字是6或7位,第7位不一定有效,前6位一定有效//具体翻书

下面解释有效数字是6位的意思:

float f = 3.123456

printf("%f",f);

输出结果可靠数据是前6位,即,3.12345

float f = 123456.789

printf("%.2f",f);

因为要求输出结果保留两位,所以输出结果小数点后会有两位,但是!这两位小数保留的毫无意义,因为它不可靠,可靠的6位有效数字已经被整数部分的123456占完了。根据以上,楼主可以自行给 f 赋各种不同值,多次调整整数部分与小数部分的位数和大小,查看输出,相信你会发现,输出结果,从左数,只有前6位是一定准确的

单精度浮点型(float),在C++中,单精度浮点型(float )专指占用32位存储空间的单精度(single-precision )值。单精度在一些处理器上比双精度更快而且只占用双精度一半的空间,但是当值很大或很小的时候,它将变得不精确。

当需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。例如,当表示美元和分时,单精度浮点型是有用的。在foxpro中,单精度浮点型是为了提供兼容性,浮点数据类型在功能上等价于数值型。

扩展资料:

C++语言特点:

1、支持数据封装和数据隐藏

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。

完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。

2、支持继承和重用

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。

4、支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。

继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。

参考资料来源:

百度百科-单精度浮点型

百度百科-C++

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜