double类型-JAVA类型转换的问题……。

问题描述

JAVA类型转换的问题……。
     byte b = 20;         //20是为默认类型int类型。大类型赋小类型却不用转型。
        float f = 3.25F;    //3.25是为默认类型double类型。大类型赋小类型要转型。
        //为什么第一个不需要转型?
//*************************************************
        byte b1=20;
        byte b2= 30;
        byte b3= b+b1;      //编译报错,因为b+b1的默认类型是int,所以需要强转;

        float a = 30.0f;
        float a1 = 40.0f;
        float a2= a+a1;     //这里为什么编译能通过,难道a+a2不是为默认类型double吗

解决方案

你刚刚定义了一个byte 类型的20,为什么要转型?
3.25F,F只是标记前面的3.25是个float类型。难道你要这样定义吗float f =(double)3.25F ?这是个什么语法呢...
在刚刚定义数据类型的时候,不涉及转换,因为你定义的就是该类型。在之后的赋值或调用的时候才涉及类型转换。
比如:
byte a =20
short b=30
int c = a+b
在计算c = a+b 的时候才有类型转换,float同理

解决方案二:

因为20还在byte的取值范围内,所以不需要强转,换成200就需要了

时间: 2024-12-29 17:47:17

double类型-JAVA类型转换的问题……。的相关文章

java中double类型运算结果异常的解决方法_java

问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); System.out.println(0.033*100); System.out.println(12.3/100); 输出: 39.989999999999995 0.33999999999999997 3.3000000000000003 0.12300000000000001 解决方法: J

Java的double类型探索.

一.double类型的存储表示 Java的浮点类型表示完全按照IEEE754标准(Standards of IEEE 754 floating point numbers),有兴趣可以上IEEE标准网站(www.ieee.org)查阅.该标准的内容基本上描述了浮点类型的存储格式(Storage Layout),下面我从中总结几段,来概括该标准,详细信息请查阅标准原文. 1.什么是浮点数. 计算机上表达实数有两中方法:定点表示(fixed-point)和浮点表示(floating-point).定

java中Double类型的运算精度丢失的问题 (小数点多出99999999999999)

 在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1. 特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我们又处理其他事情. 这样的情况通过double计算出来的结果去和0比较大小,尤其是有小数点的时候,经常会因为精度丢失而导致程序处理流程出错.  首先贴一个使用的代码: /** * 将double类型数据转为字符串(如将18.4转为1840,如果需要1840.0,把int强转去掉即可) * @par

java中double类型的值如何实现科学计数法

问题描述 java中double类型的值如何实现科学计数法 java中,一个double类型的数值,如何在显示的时候是科学计数法 解决方案 它达到一定的值,就会显示成科学计数格式,当然你可以自己这个格式化方法任意转 解决方案二: 小数位数多了自动科学计数法表示的吧.

误差-Java的double类型在运算时,结果有的时候不能精确显示。我知道是进制导致的。

问题描述 Java的double类型在运算时,结果有的时候不能精确显示.我知道是进制导致的. 下图讲解,我懂. 但是,在做题的时候............. 才发现,我也只能确定0.1不能被精确显示,具体该如何解这样的题呢? 其实我进一步思考了.我以为就看尾数是不是5.比如0.5.0.05.因为2的-x次方的尾数都是5.是5就能精确显示,不是就不能.但是后来发现.................计算误差"> 说明不能只靠最终结果来判断...............那该怎么判断啊? 问题补充

Java中,double类型的两个小数相减,值不正确

问题描述 Java中,double类型的两个小数相减,值不正确 double num1 = 0.03; double num2 = 0.02; double num; num = num1 - num2; 此时得到的num!= 0.01,而是等于0.0099....998:请问这是为什么啊?这是由于double类型的精度造成的嘛?谢谢. 解决方案 浮点数存储肯定有精度误差,特别是小数点后面,可以用BigDecemal这个类做

string-java里,double类型可以直接转换为String的机制有什么

问题描述 java里,double类型可以直接转换为String的机制有什么 package string; public class Example1 { public static void main(String[] args) { String str; double n = 18; double m = 2; str = n + ""+"" + m; System.out.println(str);} }在上述代码中,str是怎么把m和n转换为String

java类型转换问题求助

问题描述 java类型转换问题求助 现在获取了一个List如下 {a=1},{a=2},{a=3} {a=1}为一个Hashmap对象 如何将"1"这个integer类型的值取出? 解决方案 1.String 转换成 int ? ? ? ? ?使用函数Integer.parseInt(s, radix),其中s为字符串,radix为基,设置为10表示10进制,16表示十六进制. 例如: String s="53c015"; int i = Integer.parse

double 类型输出0.00

问题描述 给一个double类型的变量复制0.00,打印出来是0.0,有没有方法是double类型保存的是0.00? 解决方案 解决方案二:doubled=12.1;DecimalFormatdf=newDecimalFormat("#.00");System.out.println(df.format(d)); 解决方案三:引用1楼ylz2007的回复: Javacodedoubled=12.1;DecimalFormatdf=newDecimalFormat("#.00&