首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么当我给双精度变量或扩展变量赋值时,我得到了错误的值?

当给双精度变量或扩展变量赋值时,可能会出现错误的值的原因有多种可能性。以下是一些常见的原因和解决方法:

  1. 数据类型不匹配:双精度变量和扩展变量需要使用相应的数据类型进行赋值。如果赋值的数据类型与变量类型不匹配,可能会导致错误的值。确保使用正确的数据类型进行赋值。
  2. 数据溢出:双精度变量和扩展变量有一定的范围限制。如果赋值的数据超出了变量的范围,可能会导致溢出错误。检查赋值的数据是否在变量的有效范围内。
  3. 精度丢失:双精度变量和扩展变量在存储浮点数时具有一定的精度限制。如果赋值的浮点数具有更高的精度,可能会导致精度丢失,从而得到错误的值。确保赋值的浮点数精度与变量的精度匹配。
  4. 运算顺序错误:在赋值语句中,如果存在复杂的运算表达式,可能会导致运算顺序错误,从而得到错误的值。确保在赋值语句中使用适当的括号和运算符优先级。
  5. 内存访问错误:如果赋值语句中涉及到指针或引用,可能会导致内存访问错误,从而得到错误的值。确保在使用指针或引用时,正确地访问和操作内存。
  6. 编译器优化:一些编译器可能会对代码进行优化,可能会导致赋值语句的顺序改变,从而得到错误的值。可以尝试禁用编译器优化或使用特定的编译选项来解决该问题。

总之,当给双精度变量或扩展变量赋值时,需要仔细检查数据类型、范围、精度、运算顺序和内存访问等方面的问题,以确保得到正确的值。如果问题仍然存在,可以进一步调试和排查代码中的其他可能性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java匹马行天下之教你用学汉语式方法学编程语言

变量 第二种: X+Y=Z 看到这个你是不是想到了你学过方程式了,没错,这就是方程式,你看,加号两边X和Y你可以给它们赋任意,是可以变化,Z随着X、Y改变而改变,在数学中我们把X、Y、Z叫未知数...500ML牛奶瓶中牛奶装到了1000ML牛奶瓶中,这个过程在编程语言中叫自动类型转换(也叫隐式类型转换),根据这个例子也可以解释为把一个数赋值更大数值范围变量,例如可以将byte类型整数赋值...哈哈,开玩笑,别忘了计算机是死,不会思考,就拿那个方程式来说吧,你变量X赋一个数值,你告诉它这个数值是什么数据类型,计算机才能知道,才能进行相应计算。...,这个就是上面讲到声明变量变量赋值。...("X+Y和为:"+(X+Y));电脑就会给我在屏幕上输出X+Y,至于里面为什么要那样写,后面也会说,这就是编程语言里面的一些规则,你只有会这些规则,你才能跟计算机进行沟通交流,让计算机做你想做

50320

java从入门到精通二(Java基本语法,关键字,数据类型)

1.2:java中注释 其实注释是为了让他人来更好看出你写程序是干嘛用,适当注释也是程序猿一个良好习惯,当我们编写程序过于长而中途停止,我们可以先写上注释来标明这段代码是干嘛用,以方便以后阅览...其中,单精度浮点数后面以Ff结尾,而精度浮点数则以Dd结尾。当然,在使用浮点数也可以在结尾处不加任何后缀,此时虚拟机会默认为double精度浮点数。浮点数常量还可以通过指数形式来表示。...我们来看浮点数类型 浮点数类型分为两种,一个是double,这个是精度,一个是float,这个是单精度。说白了,精度变量类型就是比单精度变量类型小数保留位数多而已,这是使用上区别。...再char类型变量赋值,我们要给加上单引号,’’,我们要是英文半角格式单引号。我们还可以直接给定数字,像97,就代表了字符a。...控制台给出a是5,那我们这样做是可以。 下面,我们来看错误示例。

28120

计算机萌新成长历程——初识C语言2

刚刚开始接触数据类型,学习到了以下几个数据类型 char——字符数据类型 short——短整型 int——整型 long——长整型 long long——更长整型 float——单精度浮点数 double...——精度浮点数 下面将分享一下对这些数据类型理解。...以字符形式在屏幕上打印出来,%c——打印字符 通过这里我们可以知道要使用这些数据类型格式是“数据类型 + 变量 = ” 根据数据类型不同,赋予这些也是有区别的 char这个数据类型我们可以将字符赋值给他变量如...若是打印浮点型精度浮点型则显示数据为0 这里小数与小数位数无关,一位也好,多位也好结果都是相同 总结一下short/int/long/long long——整型数据类型 1.变量赋值内容只能是整数...,若赋值小数在打印也只读取整数部分; 2.若将小数赋值相关变量来打印浮点型精度浮点型,小数部分也无法被读取。

12120

Java_数据类型_03

,表示方法都用小数和指数两种格式,单精度小数表示用F或者f后缀表示,精度小数使用d或者D表示,当数值较大,使用指数形式表示更好,如3.12E10,3.23e7 提示:使用指数形式时候,E 或者e...布尔常量 布尔常量在java 中只有true和false 两个,记住,不能转换成任何其他类型,只能赋值boolean 数据类型或者布尔表达式 变量 程序运行中值可变量,它用来记录程序运行中间结果保存数据...,叫做下溢,例如,最大加上一个1,就会上溢,该就变换成该数据类型最小,如果一个最小减一,就会下溢,该就会变成数据类型最大....自动类型转换:在赋值和计算,由计算机按照优先级次序自动完成,注意,只能将位数少转换成位数多,否则只能使用强制转换....,必然会影响其他一个,那怎么可以不另外一个呢,那就d2 重新使用new 赋值 方法参数传递:参数类型有变量和对象两种。

63900

数值信息机器级存储

扩展与截断数字 这是一类在类型转换时会遇到问题,我们在编程中常常会将「小范围」类型变量转换为「大范围」类型变量,或者将「大范围」类型变量强制转换成「小范围」类型变量。...例如:Java 中 int 类型变量占 32 bits,long 类型变量占 64 bits,那么一个 int 类型变量 x,如果被赋值了一个 long 类型变量 y,那么 y 高 32...对于采用补码编码整数而言,扩展 32 位将全部为原最高有效位。 这是小范围扩展到大范围所代表一类问题,那么大范围缩进为小范围,该怎么办呢?...下图是浮点数存储标准格式,当然单精度在各自模块使用位数不尽相同。...就目前而言,也不能保证,懂得了计算机是如何存储数值就一定能够提高你编程能力,但是等到你程序中出现数值运算错误而无法解决时候,这一点点基础知识一定能帮上忙。

1.3K60

V8 最佳实践:从 JavaScript 变量使用姿势说起

而 HeapNumber是不可变当我们改变 o.y为 5.2,V8 需要再开辟一个新内存实体到 o.y引用。 ?...前面说到, HeapNumber和 MutableNumber都是使用指针引用方式指向内存实体,而 MutableNumber是可变,如果此时你将属于 MutableNumber o.x赋值其他变量...问题来了,如果我们一开始一个变量赋值 Smi范围数字,紧接着再赋值 HeapNumber范围数字,引擎会怎样处理呢?...紧接着当我们修改 b.x数值为 0.2,V8 需要分配一个新被标志为 Double Shape 到 b,并将新 Shape 指针重新指向回空 Shape,除此之外,V8 还需要分配一个 MutableHeapNumber...另外很喜欢这类以小见大技术点,以后当别人问你为什么要这样声明变量,你往往就能开始表演…… 参考文章:The story of a V8 performance cliff in React

1.1K32

零基础学Java(2)数据类型与变量

大家好,又见面了,是你们朋友全栈君。 前言 Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。...在很多情况下,float类型精度并不能满足需求。实际上,只有很少情况适合使用float类型,例如,需要单精度库,或者需要存储大量数据。   ...变量名大小写敏感 +这样符号不能出现在变量名中,空格也不行 不能使用Java保留字作为变量变量初始化 声明一个变量之后,必须用赋值语句对变量进行显式初始化,千万不要使用未初始化变量。...我们可以看到当我们要修改常量,就会报错,原因如下: 在Java中,经常希望某个常量可以在一个类多个方法中使用,通常将这些常量称为类常量。...例如,销售服装比萨只有小、中、大这三种尺寸。当然,可以将这些尺寸分别编码为1、2、3。但这种设置很容易出错。很可能在变量中保存是一个错误(比如0)。 针对这种情况,可以自定义枚举类型。

30420

Kotlin:03-变量、常量、数据类型

(name) } 在上面的代码中,我们通过 var name="CnPeng" 声明了一个变量name ,并给他赋值 “CnPeng” ,这样,我们再次执行该main函数,输出结果就是 “CnPeng...(name) } 在上面的代码中,我们 name 重新赋值123 ,这时候IDEA会爆红,我们将光标移动到表红线位置会得到一个弹窗提示,如下: 这个弹窗意思是说:String 类型变量不能接收...(1)、Kotlin常见数据类型 类型 含义 位宽 Byte 整数 8 Short 整数 16 Int 整数 32 Long 整数 64 Float 单精度小数 32 Double 精度小数 64 String...,不能在接收字符串类型之外,所以当我们将没加引号123 赋值 name 时会报错,这就是类型推断。...常量 用 Val 来标识,当一个变量通过Val 声明为常量之后,就不能再进行赋值操作,否则会报错,示例代码如下: 2、数字常量命名 在命名数字常量可以使用下划线间隔,让数值更易读,示例如下: val

33230

Java类型转换基本规则

3、赋值和方法调用基本数据类型转换规则一样。合法基本类型转换原则是指从取值范围窄类型向取值范围宽类型转换,如果是从取值范围宽类型向取值范围窄类型转换,则会产生编译错误。 ...5、Java中无后缀数字型,文字型共有两种默认类型,无小数点整数型文字、默认类型为整型int,带有小数点浮点数型文字,默认类型为精度double。 ...6、在赋值语句中,默认类型为整型无小数点整数型文字作为右操作数,可以赋值取值范围比整型小变量,前提是文字对于实际数值在变量类型取值范围内。...而默认类型为精度带有小数点浮点数型文字只能赋值精度变量,不能赋值精度变量。  7、基本数据类型转换在算术运算情况下,正对单操作数运算符和操作数运算符转换规则是不一样。 ...取负运算符(-)按位取反运算符(~),如果操作数为byte、charshort,则先被转换为int,再参与运算。

94710

「MoreThanJava」Day2:变量、数据类型和运算符

重新回到最开始问题 — 0.1 和 0.2 相加不等于 0.3 原因包括以下两个: 使用二进制表达十进制小数,某些数字无法被有限位二进制小数表示; 单精度精度浮点数只包括 7 位或者 15...位有效小数位,存储需要无限位表示小数只能存储近似; 在使用单精度精度浮点数也应该牢记它们只有 7 位和 15 位有效位数。...;(反例:int a; 随意命名方式) 变量初始化 声明一个变量之后,必须用赋值语句对变量进行显式初始化,千万不要使用未初始化变量。...二者之间真正区别是:前置 ++ 是将变量加 1 后,使用增值后变量进行运算,而后置 ++ 是首先将变量赋值一个临时变量,接下来对变量加 1,然后使用那个临时变量进行运算。...该运算符有 3 个操作数,并且需要判断布尔表达式。该运算符主要是决定哪个应该赋值变量。 variable x = (expression) ?

50830

【C语言】scanf多组输入三种方法!

由博主大家讲解讲解讲解关键点 scanf 功能用一句话来概括就是“通过键盘程序中变量赋值”。...精度浮点型格式 %p 地址格式 %c 字符格式 %s 字符串格式 %p 地址格式 示例二: scanf(“输入控制符非输入控制符”, 输入参数); 这种用法几乎是不用,也不建议你们使用。...所以在输入时候,i= 必须要原样输入。 比如要从键盘变量 i 赋值 123,那么必须要输入i=123才正确,少一个都不行,否则就是错误。...知道各位聪明铁汁们一定想到了。 只要返回不失败,不就可以多组输入了嘛!...而只有返回为EOF(-1)时候其取反(取反操作符~)才是0 扩展:原反补概念 大家扩展一下一个整数在C语言中存是他补码 ⛳️ 原码就是它本身转化成二进制 ⛳️ 反码按位取反

36210

江哥带你玩转C语言 | 04-C语言常量和变量

例如:0.0f、1.01f 精度小数:十进制小数形式。例如:3.14、 6.66 默认就是精度 可以没有整数位只有小数位。...一旦变量指明了类型,那么这个变量就只能存储这种类型数据 内存空间极其有限,不同类型变量占用不同大小存储空间 为什么要指定变量名称?...C语言中***赋值运算符***,作用是将右边整型常量998赋值左边整型变量value 赋值时候,= 号左侧必须是变量 (10=b,错误) 为了方便阅读代码, 习惯在 = 两侧 各加上一个...多次赋值即可 每次赋值都会覆盖原来 int i = 10; i = 20; // 修改变量 ---- 变量之间传递 可以将一个变量存储赋值另一个变量 int a = 10; int...b = a; // 相当于把a中存储10拷贝了一份b ---- 如何查看变量?

53600

Java基础入门篇(四)——Java变量数据类型和基本数据类型

byte类型变量赋值 byte a = 56; //正确,允许byteshort范围内直接赋值byteshort。 (二)浮点型 浮点型主要存储小数数值。...例如: float a=123.5f; //float类型变量赋值,后面需要加字母f double类型变量赋值,后面可以加Dd,也可以不加。...double a1=100.1;//double类型变量赋值,后面可以不需要加d; double a2=123.2d;//double类型变量赋值,后面可以加d; 还有一个需要注意3个特殊浮点...具体例子以下所示: char c=’a’ ;//char类型变量c赋值字符’a’ char c1=97; //char类型变量c1赋值数值为97,相当于字符’a’ (四)布尔型 布尔类型用来存储布尔...浮点型分为单精度浮点型(float)和精度浮点型(double),这两种类型所占空间和取值范围,需要注意一个单精度浮点型(float)后面需要加个f。字符型是存储一个单一字符,用char表示。

47020

【面试说】聊聊JavaScript中数据类型

这意味着你不需要提前声明变量类型,在程序运行过程中,类型会被自动确定,也就是说你可以使用同一个变量保存不同类型 var foo = 42; // foo is a Number now foo...典型用法是: 变量被声明了,但没有赋值,就等于 undefined。 调用函数,应该提供参数没有提供,该参数等于undefined。 对象没有赋值属性,该属性为 undefined。...第一版 JavaScript 是用 32 位比特来存储,且是通过低 1 位 3 位来识别类型,对象类型标签是 000。...现在让来利用这两点来解决前面我们提到问题: Symbol——是独一无二最靓仔 定义 ES6 引入了一种新原始数据类型 Symbol,表示独一无二 let s = Symbol(); typeof...❞ 为什么会问这个问题? 因为数组是一个特殊存在,是我们平时接触最多数据结构之一,它是一个特殊对象,它索引就是“普通对象” key

51720

c语言输入输出格式

e                 以指数形式输出单、精度实数 g                 以%f%e中较短输出宽度输出单、精度实数 c                 输出单个字符...若实际位数多于定义宽度,则按实际位数输出, 若实际位数少于定义宽度则补以空格0。 4.精度 精度格式符以“.”开头,后跟十进制整数。...再求“i++”项7,然后I再自增1后为8。再求“--i”项,i先自减1后输出,输出为7。最后才求输出表列中第一项“++i”,此时i自增1后输出8。...地址表列中给出各变量地址。地址是由地址运算符“&”后跟变量名组成。例如,&a,&b分别表示变量a和变量b 地址。这个地址就是编译系统在内存中a,b变量分配地址。...在赋值表达式中变量赋值,如: a=567 在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是变量赋值,但要求写变量地址,如&a。这两者在形式上是不同

2.9K20

c++中基本类型详细解释外加基本运算规则

double 精度浮点型 longdouble 扩展精度浮点型 #复合类型: 是基于其他类型定义类型(引用和指针)。...通过将声明符写成&d形式来定义引用类型,其中d是声明变量名。...引用一旦初始化后,就不可以再发生改变(不能再引用其他变量) int a=10; int c=12; //编译器自动转化为:int* const b=&b; //指针常量是指针指向不可以改变,同理证明为什么引用不可以更改...int &b=a; //int &b=c;(错误写法) 引用需要一个合法内存空间 // int &ref=10; 错误写法 //更改方法 const int &ref =10; //编译器可以优化代码即等价于...指针本身就是一个对象,可以指针赋值和拷贝,在指针生命周期内可以先后指向几个不同对象。指针无需在定义赋值

16530

笨办法学 Java(一)

第 13 到 15 行三个精度变量赋初始,第 17 到 19 行初始化了三个字符串变量。然后第 21 到 26 行在屏幕上显示了这些变量。请注意,变量名没有用引号括起来。...结果是1.1在二进制中是一个重复小数。 记住在上一个练习中说精度问题在于有限精度。在本书中,你大多数时候可以忽略这个事实,但我希望你能记住精度变量有时会给出略微不同于你期望。...这不是语法问题(编译器关心代码部分),也不是运行时错误,比如当人类在期望整数,Scanner 对象接收到了一个精度数。这个逻辑错误设计指令流程缺陷,导致输出不是想要实现。...我们创建三个变量,给它们赋值,显示它们,改变它们,然后再次打印它们。然后从第 17 行开始,我们变量相同,并打印它们。...练习 12:布尔表达式 到目前为止,我们只看到了三种类型变量: 整数 整数,不带小数部分数字(正数负数) 精度精度浮点”数字(正数负数),可能有小数部分 字符串 一个字符串是字符,保存单词

25610

【C语言】数据类型(基本类型、构造类型、类型转换)

1B=8bit; int类型在打印使用%d 浮点型 浮点数分为单精度浮点数(float)和精度浮点数(double)两种,其中double型变量所表示浮点数比float型变量更精确。...单精度浮点数后面以Ff结尾,精度浮点数以Dd结尾。 浮点数后缀可以省略,若省略,则默认为精度浮点数。 double类型打印使用%lf,float类型打印使用%f。...在赋值类型不同时,即变量数据类型与所赋值数据类型不同,系统会将“=”右边转换为变量数据类型再将赋值变量。...char类型与int类型转换:将int型数值赋值char型变量,只保留其最低8位,高位部分舍弃;将char型数值赋值int型变量,如果原来char型数据取正值,则转换后仍为正值;如果原来char...将int型数据赋long型变量,其外部保持不变,而内部形式有所改变。 无符号整数之间转换:将一个unsigned型数据赋一个长度相同整型变量,内部存储方式不变,但外部可能改变。

1.6K30

Java之数据类型,变量赋值

double---double型即精度浮点型,使用double关键字来定义double型变量,可以一次定义多个变量并对其进行赋值,也可以不进行赋值。...在给double型赋值,可以使用后缀“D”“d”明确表明这是一个double类型数据,但加不加并没有硬性规定,可以加也可以不加。...注:在Java中,整数变量赋值,后面的会先给一个int 2.强制类型转换: public class Test1 { public static void main(String[] args...因为将数字赋变量,首先给他一个int类型,而8888888888超过了int范围所以报错,应该在超出范围数字后面加一个l声明,l不分大小写。...char  short  byte  进行运算时候,默认取值为int 显式转换:也叫作强制类型转换,可能会导致精度丢失,精度由高到低,需要声明 隐式转换:精度由低到高,不需要声明 变量赋值练习:

2.6K50
领券