精华内容
下载资源
问答
  • 单精度与双精度

    2021-03-27 21:50:45
    单精度与双精度 %lf 与%f:单精度与双精度 学习c语言,在进行实验练习时遇到了单双精度的问题,在这里和大家分享下。 问题: 计算某市出租车收费标准下的收费,因为收费标准多样,现定:车费=起步价+超出起步的里程...

    单精度与双精度

    %lf 与%f:单精度与双精度

    学习c语言,在进行实验练习时遇到了单双精度的问题,在这里和大家分享下。
    问题

    计算某市出租车收费标准下的收费,因为收费标准多样,现定:车费=起步价+超出起步的里程数*单价

    代码

    #include<stdio.h>
    #include<stdlib.h>
    int main(){
    	double BasicPrice,UnitPrice;//BasicPride是起步价,UnitPrice是单价
    	float Basicmile,allmile;//Basicmile是起步的里程数,allmile表示总里程数
    	float money;//money表示最后收费
    	printf("请依次输入 起步价 单价 起步的里程数 总里程数:");
    	scanf("%lf %lf %f %f",&BasicPrice,&UnitPrice,&Basicmile,&allmile);
    	money=BasicPrice+UnitPrice*(allmile-Basicmile);
    	printf("收费%lf",money);
    	system("pause");
    	return 0;
    }
    

    大家请注意

    double BasicPrice,UnitPrice;
    float Basicmile,allmile;
    

    这里有两种不同的变量doublefloat,当我们在进行数据接收时需要注意类型的匹配
    这里进行正确和错误类型的示范:
    正确

    scanf("%lf %lf %f %f",&BasicPrice,&UnitPrice,&Basicmile,&allmile);
    

    错误1

    定义变量双精度,却只接收变量双精度

    scanf("%f %f %f %f",&BasicPrice,&UnitPrice,&Basicmile,&allmile);
    

    此时会出现数据错误
    乱码
    我们进一步测试,打印BasicPrice和UnitPrice:
    在这里插入图片描述
    可见这两个变量里面并不是我们输入的数字
    这是因为在输入函数scanf中接收的是%f也就是单精度类型(通常是6位有效数字),但是一开始BasicPrice和UnitPrice被定义为双精度类型(通常是15或16位),一些数位未被覆盖到
    就像涂色块游戏,在定义变量时就被赋予了地址,不过里面的值是随机的,它有自己的底色
    在这里插入图片描述
    但是因为你的颜料不够(只接收了6位有效数字)没涂满,原来的一些颜色没被覆盖:
    在这里插入图片描述
    所以输出就会呈现乱码状

    错误2

    定义了单精度,却接收了双精度

    scanf("%lf %lf %lf %lf",&BasicPrice,&UnitPrice,&Basicmile,&allmile);
    

    在这里插入图片描述
    显示变量周围的堆栈已损坏,为什么呢?
    还是因为尺寸不匹配啊,原来的float存储大小不够接受double大小,就只能写到周围的地方啦

    总结

    • 写代码的时候注意数据类型的匹配
    展开全文
  • 单精度 半精度 双精度Here you will learn aboutSingle ... 在这里,您将了解单精度与双精度。 When talking about the numbers, amount of precision that can be reached using a representation technique h...

    单精度 半精度 双精度

    Here you will learn about Single Precision vs Double Precision.

    在这里,您将了解单精度与双精度。

    When talking about the numbers, amount of precision that can be reached using a representation technique has always been the major area of interest for the researchers. This curiosity to increase the precision and challenge the representation limits of numerical values, in computer science, lead to two major achievements – single precision and double precision.

    在讨论数字时,使用表示技术可以达到的精度一直是研究人员关注的主要领域。 在计算机科学中,这种提高精度和挑战数值表示极限的好奇心带来了两项主要成就–单精度和双精度。

    单精度 (Single Precision)

    Single precision is the 32 bit representation of numerical values in computers. It is also known as binary32. Some languages, like JAVA, C++ use float to store these kinds of numerals. Some languages (Visual Basic) refer single numerals as single.

    单精度是计算机中数值的32位表示形式。 它也被称为binary32。 某些语言,例如JAVA,C ++,使用float来存储这些数字。 某些语言(Visual Basic)将单个数字称为单个。

    Single precision is most widely used because of its capability to represent wide range of numeral values, though it reduces the amount of precision achieved.

    单精度由于其能够表示宽范围的数字值而被广泛使用,尽管它降低了获得的精度。

    Single precision uses 32 bit to represent a floating point number.

    单精度使用32位表示浮点数。

    First bit represent the sign of the number, negative or positive.

    第一位代表数字的符号,负数或正数。

    Next 8 bits are used to store the exponent of the number. This exponent can be signed 8-bit integer ranging from -127 – 128 of signed integer (0 to 255).

    接下来的8位用于存储数字的指数。 该指数可以是8位带符号整数,范围是-127 – 128个带符号整数(0到255)。

    And the left 23 bits are used to represent the fraction part and are called fraction bits.

    剩下的23位用于表示小数部分,称为小数位。

    8 exponent bits provide us with the range and 23 bits provide us with the actual precision.

    8个指数位为我们提供了范围,而23位则为我们提供了实际精度。

    双精度 (Double Precision)

    Double precision is called binary64. Double precision uses 64 bits to represent a value.

    双精度称为binary64。 双精度使用64位表示值。

    First bit is used for the same purpose as in single point precision i.e., represents sign of the number.

    第一位用于与单点精度相同的目的,即代表数字的符号。

    Next 11 bits are used to denote exponent, which provide us with the range, and has 3 more bits than single precision, so it is used to represent a wider range of values.

    接下来的11位用于表示指数,它为我们提供了范围,并且比单精度多3位,因此用于表示更大范围的值。

    Next 52 bits are used to represent the fractional part which is 29 bits more than binary32 bit representation scheme. So it has a greater precision than single precision.

    接下来的52位用于表示小数部分,该部分比bina​​ry32位表示方案多29位。 因此它具有比单精度更高的精度。

    Double floating point precision are used where high arithmetic precision is required and number like – 2/19 have to be used. Double point precision requires more memory as compared to single precision, hence are not useful when normal calculations are to be performed. This representation technique finds its use in the scientific calculations.

    如果需要较高的算术精度,则使用双浮点精度,并且必须使用– 2/19之类的数字。 与单精度相比,双精度需要更多的存储空间,因此在执行常规计算时没有用。 这种表示技术可用于科学计算中。

    Single Precision vs Double Precision

    Image Source

    图片来源

    单精度与双精度 (Single Precision vs Double Precision)

    Single Precision Double Precision
    Is binary32 bit representation scheme. Is binary64 bit representation scheme.
    Uses 32 bit memory to represent a value. Uses 64 bit memory to represent a value.
    Uses 1 bit to represent sign. Uses 1 bit to represent sign.
    Uses 8 bits to represent exponent. Uses 11 bits to represent exponent.
    Uses 23 bits to represent fractional part. Uses 52 bits to represent fractional part.
    Is widely used in games and programs requiring less precision and wide representation. Finds its use in the area to scientific calculations, where precision is all that matters and approximation is to be minimized.
    单精度 双精度
    是binary32位表示方案。 是binary64位表示方案。
    使用32位内存表示一个值。 使用64位内存表示一个值。
    使用1位代表符号。 使用1位代表符号。
    使用8位代表指数。 使用11位代表指数。
    使用23位代表小数部分。 使用52位代表小数部分。
    广泛用于要求较低精度和广泛表示的游戏和程序中。 可以在科学计算领域中找到其用处,在此领域中,精度至关重要,应尽量减少近似值。

    Comment below if you queries related to difference between Single Precision and Double Precision.

    如果您查询有关单精度和双精度之间差异的问题,请在下面评论。

    翻译自: https://www.thecrazyprogrammer.com/2018/04/single-precision-vs-double-precision.html

    单精度 半精度 双精度

    展开全文
  • 单精度与双精度区别

    千次阅读 2019-06-20 17:35:17
    单精度与双精度区别(1)在内存中占有的字节数不同(2)有效数字位数不同(3)所能表示数的范围不同(4)在程序中处理速度不同 (1)在内存中占有的字节数不同 单精度浮点数在机内占4个字节 双精度浮点数在机内占8个...

    (1)在内存中占有的字节数不同

    单精度浮点数在机内占4个字节

    双精度浮点数在机内占8个字节

    (2)有效数字位数不同

    单精度浮点数有效数字8位

    双精度浮点数有效数字16位

    (3)所能表示数的范围不同

    单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38

    双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308

    (4)在程序中处理速度不同

    一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快

    参考博文

    展开全文
  • 展开全部单精32313133353236313431303231363533e58685e5aeb931333365656466度与双精度的区别:1、单精度数是指计算机表达实数近似值的一种方式。单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双...

    展开全部

    单精32313133353236313431303231363533e58685e5aeb931333365656466度与双精度的区别:

    1、单精度数是指计算机表达实数近似值的一种方式。单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,这是他们最本质的区别。

    333d4999584074e2abea8fefad0ab7b0.png

    2、由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。

    扩展资料

    VB中Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。

    0efdb09fb4e86161deff01a4a7a24ee3.png

    双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示。类型在汉字的意思是指由各特殊的事物或现象抽出来的共通点;在。NET框架中,类型(type)又被称作组件(component).通常情况下,应用程序既包括我们自己创建的类型,也包括微软和其他一些组织创建的类型。

    展开全文
  • 含义:表明单精度双精度精确的范围不一样,单精度,也即float,一般在计算机中存储占用4字节,也32位,有效位数为7位;双精度(double)在计算机中存储占用8字节,64位,有效位数为16位。原因:不管float还是double ...
  • 为什么会有精度问题?计算机处理数据都涉及到数据的转换和各种复杂运算,比如,不同单位换算,不同进制(如二进制十进制)换算等,很多除法运算不能除尽,比如10÷3=3.3333.。。。。。。无穷无尽,而精度是有限的,3....
  • 展开全部单精度数是62616964757a686964616fe59b9ee7ad9431333431353330指计算机表达实数近似值的一种方式。VB中Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3....
  • 单精度浮点数(float)与双精度浮点数(double)的区别: (1)在内存中占有的字节数不同 * 单精度浮点数在机内占4个字节 *双精度浮点数在机内占8个字节 (2)有效数字位数不同 *单精度浮点数有效数字8位 *双精度...
  • 浮点数(实数)中单精度与双精度区别

    千次阅读 2018-11-26 20:39:09
    从存储的不同可以看出单精度在长度上已经小双精度一倍,当对数据类型的精度要求不高(±3X2(38))时用单精度就可以,当对数据需要多次迭代使用需要高精度的小数值(±3X2(308))时可以用双精度或l...
  • 单精度与双精度浮点数

    千次阅读 2017-01-26 19:24:47
    float是32位,double是64位 ...精度是看尾数部分 float尾数位23位,2^23=8.3E6,7位,所以不同的编译器规定不同,有些是7位,有些8位 double尾数52位,2^52=4.5E15,15位,所以double的有效位数是15位
  • 单精度与双精度的区别

    千次阅读 2014-10-23 16:40:40
    单精度 占四个字节存储空间 能表示的有效数位为7位 双精度 占八个字节存储空间 能表示的有效数位为16位 最好定义符点数时,都采用double类型。 因为小数在计算机中存储的多数为近似值,虽然符点数的表示方法(IEEE...
  • 单精度是这样的格式,1位符号,8位指数,23位小数。双精度是1位符号,11位指数,52位小数。
  • C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,...
  • 单精度与双精度浮点型

    千次阅读 2014-09-16 20:41:53
     为作为浮点数的小数表示,单精度浮点数 float  由符号位 1  位, 指数域位 k   =8  位,小数域位 (   尾数   )n=23  位构成,因此对上面得到的 21  位小数位我们还需要补上 2  个 0  ,得到浮点数的小...
  • 单精度与双精度问题

    千次阅读 2012-03-28 21:18:20
    第一次a是float型的,有32位,但是在做减法的时候,升级成double型的,这样后面的32位默认为o,之后在做减法不会改变应该有的循环次数。第二个程序a是double型的,64位中都是相应的数字。不像上一个a需要一个转化。...
  • /********************************************************************...Input: 单精度浮点数number Output: 无 Input_Output: 无 Return: 快速平方根倒数的值 Author: Marc Pony(marc_pony@163.com) *************
  • 关于matlab的单精度与双精度

    万次阅读 2011-04-09 23:36:00
    在matlab中有这么两个函数hex2num(str),将16进制字符串str(默认双精度)转换成一个数(如果加一个类型转换可以转换为单精度hex2num(single(str))num2hex(num),将一个双精度的数num(默认)装换成16进制字符串(当然...
  • 在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。 无论是float还是double,在内存中的存储...
  • vb作业,单精度与双精度的区别

    千次阅读 2012-05-22 16:50:00
    13.25用二进制表示的结果及single和double 1101.01 因为1101.01=2^3+2^2+0*2^1+2^0+0*2^-1+2^-2 =8+4+0+1+0+1/4=13.25 integer:只能表示整数,不能有小数点,正...single:单精度,可以有小数点,最大长度是8位
  • 最近在用 sscanf 读取一个浮点数,显示总是出错,后来发现是 double 和float 赋值的问题,现把过程粘出来,便以后记忆; 代码如下: //testchar tempppp[50] = {0};strcpy(tempppp, "npt=11.0-34.23");double a,b;...
  • 更新不幸的是,由于我的疏忽,我有一个旧版本的MKL(11.1)numpy相关联。更新版本的MKL(11.3.1)在C语言中以及从python调用时都具有相同的性能。在使事情变得模糊不清的是,即使将编译好的共享库显式地新的MKL链接...
  • 该工具为单精度与双精度的浮点转换成十进制,或者十进制转换为单精度或双精度的工具,可以验证你的计算方法是否错误。
  • 单精度 双精度单精度,也即float,一般在计算机中存储占用4字节,也32位,有效位数为7位;双精度(double)在计算机中存储占用8字节,64位,有效位数为16位。 IEEE754规范: 单精度格式:1位符号,8位指数,23...
  • 单精度浮点数与双精度浮点数区别

    千次阅读 2020-04-06 15:14:35
    单精度浮点数与双精度浮点数区别 1、所占的内存不同 单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。 而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数...
  • 浮点数和十六进制数的相互转换,包括:1.单精度浮点数(32位)和十六进制数的相互转换,2.双精度浮点数(64位)和十六进制数的相互转换。
  • 测试平台 MCU: STM32F767,启动硬件双精度浮点运算协...浮点数0.1分别以单精度与双精度累加1000000次,打印输出累加结果。 测试代码 double dVal = 0; float fVal = 0; for(int i = 0; i < 1000000; i++){ d...
  • 计算机程序中的浮点数分为单精度浮点数和双精度浮点数。单精度双精度精确的范围不一样。计算机里的最基本的存储单位用位(bit)来表示。bit只能用来存储0或1。稍大一点的单位是字节(Byte,简写为B)。再大一级的是千...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,287
精华内容 514
关键字:

单精度与双精度