Java 数据类型转换
来源:互联网 发布:风险概率影响矩阵图 编辑:程序博客网 时间:2024/06/03 18:51
Java 数据类型转换,String->float,float->int
(2013-07-24 14:01:57)java
简单类型
类型转换
浮点数与0
分类: JavaString sourceStr = "0.0";
String类型
float sourceF = Float.valueOf(sourceStr);
float sourceF = new Float(sourceStr);
float sourceF = Float.parseFloat(sourceStr);
String
float类型
int sourceI = (Float.valueOf(sourceStr)).intValue();
int sourceI = (int)sourceF ;
float转换为
int类型
float类型数据与0比较:
if(sourceF>0.0)
else if(sourceF<0.0)
else if(sourceF==0.0)
System.out.print(result+"\n");
当source = 0.0时,输出的确实是Unknown。说明第三个if语句为真。
=============================================================================================
浮点数与0比较
const float EPSINON = 0.000001;
if ((x >= - EPSINON) && (x <= EPSINON))
浮点型变量并不精确, 其中EPSINON是允许的误差 (即精度) , 所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。
如果写成if (x == 0.0) ,则是错误的。 因为1.0在计算机中可能存为0.999999或1.00001等,很难恰好是1.0
===========================================================================================
http://cherryqq.iteye.com/blog/334855
1.Java的简单类型及其封装器类
⑴Java简单类型与封装类
Java决定了每种简单类型的大小。这些大小并不随着机器结构的变化而变化。这种大小的不可更改正是Java程序具有很强移植能力的原因之一。
下表列出了Java中定义的简单类型、占用二进制位数及对应的封装器类。
表 Java中的简单类型
简单类型
boolean
byte
char
short
int
Long
Float
Double
void
二进制位数
1
8
16
16
32
64
32
64
--
封装器类
Boolean
Byte
Character
Short
Integer
Long
Float
Double
Void
⑵为什么使用封装类
Vector v=new Vector();
int k=121;
v.addElemt(new Integer(k));
============================================
============================================
2.简单数据类型之间的转换
简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时。
⑴自动转换
具体地讲,当一个较“小”数据与一个较“大”的数据一起运算时,系统将自动将“小”数据转换成“大”数据,再进行运算。而在方法调用时,实际参数较“小”,而被调用的方法的形式参数数据又较“大”时(若有匹配的,当然会直接调用匹配的方法),系统也将自动将“小”数据转换成“大”数据,再进行方法的调用,自然,对于多个同名的重载方法,会转换成最“接近”的“大”数据并进行调用。
这些类型由“小”到“大”分别为 (byte,short,char)--int--long--float—double。这里我们所说的“大”与“小”,并不是指占用字节的多少,而是指表示值的范围的大小。
请看下面的示例:
①下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c='c';
int i=c;
System.out.println("output:"+i);
输出:output:99;
③对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99 ;
char c=(char)i;
System.out.println("output:"+c);
输出:output:c;
④对象多态中若有方法:
f(byte x){……};
f(short x) {……};
f(int x) {……};
f(long x) {……};
f(float x) {……};
f(double x) {……};
又有:char y=’A’;那么,语句f(y)会调用哪一个方法呢?答案是:f(int x) {……}方法,因为它的形参比实参“大”且是最“接近”的。
而对于方法:
f(float x) {……};
f(double x) {……};
又有:long y=123L;那么,语句f(y)调用的方法则是f(float x) {……}。
⑵强制转换
将“大”数据转换为“小”数据时,你可以使用强制类型转换。即你必须采用下面这种语句格式:
int n=(int)3.14159/2;
可以想象,这种转换肯定可能会导致溢出或精度的下降。
注:
①当字节类型变量参与运算,java作自动数据运算类型的提升,将其转换为int类型。
byte b;
②带小数的变量默认为double类型。
float f;
⑶包装类过渡类型转换
一般情况下,我们首先声明一个变量,然后生成一个对应的包装类,就可以利用包装类的各种方法进行类型转换了。例如:
①当希望把float型转换为double型时:
②当希望把double型转换为int型时:
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。
============================================
============================================
3.字符串与其它类型间的转换
⑴其它类型向字符串的转换
①调用类的串转换方法:X.toString();
②自动转换:X+“”;
③使用String的方法:String.volueOf(X);
============================================
⑵字符串作为值,向其它类型的转换
①先转换成相应的封装器实例,再调用对应的方法转换成其它类型
例如,字符中“32.1”转换double型的值的格式为:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()
②静态parseXXX方法
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
③Character的getNumericValue(char ch)方法
具体可查阅api。
再分享 java.lang.math 中的几个函数:
========================================================================================
四舍五入:
下取整:
上取整:
例如:
import
public
}
- JAVA基本数据类型、数据类型转换
- java数据类型转换默认转换
- Java基本数据类型转换
- java数据类型转换详解
- 简要JAVA数据类型转换
- java中的数据类型转换
- 简要JAVA数据类型转换
- java基本数据类型转换
- JAVA数据类型转换整理
- java数据类型转换
- JAVA数据类型转换
- [收藏]java数据类型转换
- java数据类型转换
- 数据类型转换(java)
- JAVA数据类型转换
- java数据类型转换
- java数据类型转换
- 简要JAVA数据类型转换
- 2016年3月10日设计日志
- 用Qt实现一个桌面弹幕程序(八)-- -- 桌面客户端实现④
- MQL5源码解读:CObject类
- Quartz教程四:Trigger
- Error:Unable to load class ‘org.gradle.api.publication.maven.internal.DefaultMavenFactory’
- Java 数据类型转换
- Java 进阶 之 检查型异常与非检查型异常
- 【Struts2进阶】Struts2 多方法调用的两种方式
- Android播放视频——VDPlayerSDK的使用(一)
- JDBC常用类和接口及基本操作示例
- iOS开发之APP USER对象存储归档
- Quartz教程五:SimpleTrigger
- wget
- 有点疲惫 感觉自己学着学着就忘了 这一次是ViewPager