double相关内容
我刚刚看了一下 IEEE 754 以了解的单precision 并的双击precision 浮动点实现的。 所以我写了这个检查我的理解: 的#include<&stdio.h中GT; #包括LT&;&FLOAT.H GT;诠释主(){ 双富= 9007199254740992; // 2 ^ 53 双条= 9007199254740993; // 2 ^ 53 + 1
..
在一些我一直在寻找,音频样本音频库往往是重新psented作为双或〜1.0的范围-1.0浮$ P $。在某些情况下,这很容易使分析和综合code抽象什么基础数据类型实际上可能(签订长整型,unsigned char型等)。 假设IEEE 754,我们具有不均匀的密度。作为数接近零,密度增加。这意味着,我们有接近数少precision -1和1 这不均匀数密度不要紧,如果我们可以重新presen
..
我想用LUA(即在内部使用只双打)重新present不能有0和2 ^ 64-1或可怕的事情之间的舍入误差会发生一个整数。 是否可以这样做呢? 解决方案 否 目前至少一个64位双的某些位必须被用于重新present指数(二进制点位置),因此有大于64位的较少可用的实际数量。所以,不,一个64位双不能重新present所有值的64位整数能(反之亦然)。
..
有没有宏或函数从给定的标志,尾数和指数(全部二进制或十进制),要么返回一个有效的浮点数(双)号或返回NaN如果由输入指定的数字是构造一个浮点(双)不重presentable为float(双)? 解决方案 您正在寻找的功能是 ldexp 。
..
据我所知,C只支持少数的数据类型: 整型,浮点,双,焦炭,无效枚举。 我需要存储一个数字,可能达到进入高10位。因为我是从得到一个低10位的# INT_MAX ,我想我需要一个双。 <&limits.h中GT; 没有DOUBLE_MAX。我发现了一个 DBL_MAX 认为这是遗产,也似乎是C ++在互联网上。是双我需要什么?为什么没有DOUBLE_MAX? 解决方案
..
说我有返回双击的方法,但我想确定precision要返回的值的点之后。我不知道双击 varaible的价值。 例如: 双I = 3.365737; 返回我; 我想返回值与点后的3号precision 含义:返回值是 3.365 另外一个例子:双I = 4644.322345; 返回我; 我要的返回值是: 4644.322 解决方案 你想要的是十进制数字截断了一定数字之后。
..
我试图做的是双转换为十六进制字符串,然后回到双。 以下code做转换的double-to-十六进制字符串。 的char * double2HexString(双一) { 字符* BUF =新的char [17]; //双8字节长的,所以我们有2 * 8 +终端\\ 0 字符* D2C; D2C =(字符*)及一个; 字符* N = BUF; INT I; 对
..
我与谁在使用旧版本的GCC(3.2.3是precise),但想要升级客户端和一个已经给出绊脚石升级到新版本的原因之一是工作的差异在类型的大小则float_t 其中,果然是正确的: 在GCC 3.2.3 的sizeof(则float_t)= 12 的sizeof(浮动)= 4 的sizeof(DOUBLE_T)= 12 的sizeof(双)= 8 在GCC 4.1.2 的sizeof(则
..
我编译和32位和64位平台上运行下面的程序: INT的main() { 双Y = 8.34214e08; 双Z = 1.25823e45; 返回是* Z == 8.34214e08 * 1.25823e45; } 而在64位的结果被预期(的值是相同的,并出射code是非零)在32位似乎还有在编译时计算出的值之间的差别不大,右手侧的比较,和左侧在运行时计算 这是在编译器错误或有一个
..
我想用在双击值连续读取从用户 scanf函数。 code: 的printf(“输入一个值:\\ n”); 双输入; INT结果= scanf函数(“%F”,&安培;输入); 的printf(“输入:%F \\ N”,输入); 的输出是输入:0.000 解决方案 您谎称编译:扫描时,%F 说你提供一个指向浮动。但是,你提供了一个指向双击。 要解决,要么使用%LF 或声明输入为浮动。
..
我编程在Mac OS X上C语言。我使用的开方,从math.h中,功能是这样的: INT开始=数据 - > START_NUMBER; 双localSum;对于(启动;启动< =结束;启动++){ localSum + =开方(开始); } 这工作,但为什么呢?而为什么我没有得到警告?对开方手册页,它采用双象参数,但我给它一个int - ?它如何能工作 感谢 解决方
..
我想通过网络发送一些双precision浮点数。 (标准C,标准插座)没有htond或ntohd将数据转换和从网络字节顺序。我该怎么办?我在我的头上一对夫妇的解决方案,但我想知道常见的做法是什么。 (我也想知道什么是发送64位整数,像GStreamer的使用gint64值普遍的做法) 编辑: 这是一个解决方案我想到的。我presume它适用于任何规模大小的整数,但它是正确的双打? 无效sw
..
我有一个双这不一定是正,但通常。它可以是0.xxxx000或X.xxxx00000或XX.00000或0.xxx0xxx00000,其中最终有全部为0到最后一个数字的权利。我需要跟踪的多少位有。我一直有麻烦了这一点,任何帮助?这是C 解决方案 用sprintf把它变成一个字符串,你需要的数字做任何计数/测试
..
我想知道,从0D向上双第一,通过长期的“同值”有些三角洲偏离,说1E-8。我虽然没有在这里。我试图做这在C虽然我通常使用托管语言,以防万一。请帮助。 #包括LT&;&stdio.h中GT; #包括LT&;&limits.h中GT; DELTA的#define 1E-8诠释主(){ 双D = 0; //检查,字面是罚款 我长; 对于(i = 0L; I< LONG_
..
我使用的strtod()函数来提取环境变量作为一个字符串,然后改变其使用的strtod翻番: 在此输入code 焦炭strEnv [32]; 函数strncpy(strEnv,GETENV(“LT_LEAK_START”),31); //解析的ENV LT_LEAK_START的确是一个数字前如何确保? 双D =的strtod(strEnv,NULL); 现在我想确保用户输入的这个数
..
我写了下面的code ....应该转换为字符串,如“88”为双精度值88和打印 无效convertType(字符*值) { INT I = 0; 焦炭CH; 双RET = 0; 而((CH =值[I])!='\\ 0') { RET = RET * 10 +(CH - '0'); ++我; } 的printf(“%D”,RET)
..
我期待确定的合理有效的方式,如果一个浮点值(双击)可重新准确$ P $一个整数数据类型psented( 长 64位)。 我最初的想法是检查的指数,看它是否是 0 (或更多precisely 127 )。但是,这不会起作用,因为 2.0 将是E = M = 1 ... 所以基本上,我卡住了。我有一种感觉,我可以用位掩码做到这一点,但我只是没有得到我的头围绕如何做到这一点在这一点上。 所以,我怎
..
INT 通常是32位,但在标准, INT 不保证具有恒定的宽度。因此,如果我们希望有一个32位的 INT 我们包括 stdint.h ,并使用 int32_t 。 对此有一个相当于花车?我意识到这是更复杂一点用浮漂,因为它们不是存储在一个均匀的方式,即迹象,指数,尾数。我只想要一个双击这是保证存储在64位与1个符号位,10位指数和52/53位有效位(取决于你是否算隐藏位)。 解决方案 据
..
我想转换双浮在C,但究竟尽可能想preserve小数点不作任何改变... 例如,假设我有 双D = 0.1108; 双DD = 639728.170000; 双DDD = 345.2345678 现在纠正我,如果我错了,我知道,浮点precision是点后约5个号码。我可以得到这些五个数字的小数点后完全按双了吧?使上述结果如下:浮动F = X(D); 浮FF = X(DD
..
我想从反面双重绝对值 - 我以为 ABS - 功能很容易,因为在Java中使用 - 但不是 看来, ABS - 函数,因为我有值为3.8951返回一个int和输出为3.000000 双D1 = ABS(-3.8951); 的printf(“D1:...%LF”,D1); 我怎样才能解决这个问题呢?那就是 - 我想要的绝对值双击 解决方案 使用 晶圆厂() (在文件math.h )来获
..