`
zengguo1988
  • 浏览: 276225 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

类型转换精度损失

阅读更多

 

 

import java.util.*;


class Hash

{

    public static void main(String[] args)

    {

        char A='a'+3;

        int i=3;

        char B='a'+i;   //错误:可能损失精度;为什么这个错了,上面的一个没错?

    }



分析:

char A='a'+3; a和3都是char类型的相加,没问题

 

 int i=3; 定义int 类型的变量i的值为3

char B='a'+i; 这种写法是错误的,int类型占用4个字节,char类型占用2个字节,JAVA是不容许int自动转换为char类型的

 

如果要强制转换是要这样写的char B=(char) ('a'+i);

 

但是这样会损失精度的 int的2进制是32位 char的2进制是16位 int强制转换为char的话,JAVA只截取int的32位的后16位,精度就这样损失了


分享到:
评论

相关推荐

    第2章 C运算符和表达式-6赋值中的自动类型转换(下)1

    第2章 C运算符和表达式——赋值中的自动类型转换(精度损失问题)C语言程序设计第2章 C运算符和表达式本节要讨论的主要问题从取值范围小的类型向取值范围大的类型赋

    浮点与16进制转换

    可以完成单精度、双精度浮点数据与16进制的转换,10进制与16进制的转换

    Java中各个数据类型之间的转换

    在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的...

    单元十:数据类型的隐式转换-数据类型的隐式转换完整版资料.pptx

    1. 可能导致错误:隐式转换可能会导致一些错误,例如数据丢失、精度损失等问题。 2. 不易-debug:隐式转换可能会使错误难以 debug,因为编译器或解释器会自动进行类型转换,开发者无法轻易地追踪错误的来源。 隐式...

    C语言数据类型转换PPT课件.pptx

    C语言数据类型转换 C语言中的数据类型转换是指在不同的数据类型之间进行相互转换,以便在编程中实现灵活的数据处理。...但是,我们也需要注意类型转换的规则和限制,以避免数据的精度损失和错误。

    day002 JAVA语法基础-表达式&类型转换&运算符.doc

    其他 7 种数据类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。 例如: ```java short s = 10; int num = 20; int n = num + s; // 自动转换,s 会被转换为 int ``` 2.2 强制转换 强制...

    JAVA8大数据类型.pdf

    该类类型转换很可能存在精度的损失,所以必须书写相应的代 码,并且能够忍受该种损失时才进⾏该类型的转换。 转换规则:从存储范围⼤的类型到存储范围⼩的类型。 具体规则为:double float long int short(char) byte...

    java的基本类型详解

    在类型转换时考虑精度损失和数据丢失。 理解Java的基本数据类型对于编写高效、可靠的代码至关重要。掌握它们的声明、初始化、转换和默认值是Java编程的基础。 Java是一种静态类型语言,它提供了8种基本数据类型,...

    基于C++浮点数(float、double)类型数据比较与转换的详解

    浮点数在内存中的存储机制和整型数...1、将字符串转换为float、double过程存在精度损失,只是float、double各自损失的精度不相同而已std::string str=”8.2″;float cc=atof(str.c_str()); //cc的值为8.1999998std:

    c#中decimal ,double,float的区别.doc

    double 是最常用的浮点数类型,但它也存在精度损失的问题。 最后,decimal 是 128 位高精度十进制浮点数,具有 28 位有效数字,范围约为 ±1.0 × 10^(-28) 到 ±7.9 × 10^(28)。decimal 类型主要用于财务和货币...

    小日本视频转换器

    MVBR (手动可变码率),设定最大码率和对不同的帧类型设定不同的信息损失量,实现局部码率优化。可以通过手工指定复杂场景为I帧对之进行较精细的编码。参见对于GOP参数设定部分。 CQ-VBR (自动可变码率),设定...

    实验2 Java语言基础实验.doc

    在 Java 语言中,基本数据类型可以相互转换,但需要注意精度损失的问题。在转换时,需要注意溢出和截断的问题。 实验中编写的程序可以正确地输出结果,但需要注意精度损失的问题。在转换时,需要注意溢出和截断的...

    C++之类型的自动转换

    1,在混合类型的算术表达式...  5,为防止精度的损失,如果有必要的话,类型总是被提升为较宽的类型。  6,所以含有小于整形的有序类型的算术表达式在计算之前其类型都会被转换成整型。  long double -> double ->

    程序中编写出现的错误或警告

    编译器将报告警告信息“integer conversion resulted in a change of sign”,提示我们类型转换可能会导致精度损失或溢出。 要解决这个问题,我们可以使用强制类型转换,例如: ```c int x = 10; float y = (float)...

    Java基础面试题.doc

    3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。 3、short s1 = 1; s1 = s1...

    java开发面试题及答案

    答:有问题,因为3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型,可能会造成精度损失,所以必须进行强制类型转换,正确的写法是float number =(float)3.4;/ float number =3.4F;。 Q3:...

    Neslib.Half:Delphi的半精度浮点数

    Neslib.Half-Delphi的半精度浮点这个小型库定义Half类型,这是一个。 Half类型使用重载运算符,因此您可以像Single或Double类型一样使用它(尽管精度较低)。 该Neslib.Half单元还定义了一个创纪录的助手Half类型,...

    Oracle迁移到PG建议.docx

    在迁移到PG的时候,需要注意这些数据类型的差异,并选择合适的数据类型以避免数据精度损失。 ### 二、SQL相关差异 在Oracle和Postgresql中,SQL语句也存在一些差异: * ROWNUM:在Oracle中,ROWNUM是序号列,而在...

    Java 零基础数据类型.md

    本文档详细介绍了 Java 中常用的零基础数据类型,包括 `char`、整数型、转义字符、精度损失、浮点型、布尔型和类型转换。给出了每个数据类型的示例代码和输出结果,以帮助初学者理解和使用这些数据类型。同时提供了...

    Java语言程序设计课后习题+答案.pdf

    知识点:Java数据类型的转换,需要使用强制类型转换来避免精度损失。 9.2|3&5 的值是 ________________。 答案:1 知识点:Java位运算符,位运算符用于对二进制数进行操作。 10. 指出下列正确的语句! 答案:D...

Global site tag (gtag.js) - Google Analytics