java 强制类型转换的规则是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 强制类型转换的规则是啥?相关的知识,希望对你有一定的参考价值。

参考技术A

1、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如:int型转换成double型,char型转换成int型等等;

2、赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;

3、函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;

4、函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回。

扩展资料

C++中强制类型转换函数有4个:

1、const_cast(用于去除const属性)。

2、static_cast(用于基本类型的强制转换)。

3、dynamic_cast(用于多态类型之间的类型转换)。

4、reinterpreter_cast(用于不同类型之间的指针之间的转换,最常用的就是不同类型之间函数指针的转换)。

隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。

在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。

在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回。

参考资料

百度百科-强制类型转换

SQL SERVER中强制类型转换cast和convert的区别

参考技术A 几乎一样,但是convert比cast多了个style
可以让转换结果变成指定的显示样式
以下是网上找到的参考资料
sql中的cast
和convert都是用来将一种数据类型的表达式转换为另一种数据类型的表达式。cast

convert
提供相似的功能,只是语法不同。在时间转化中一般用到convert,因为它比cast多加了一个style,可以转化成不同时间的格式。
一、语法:
1、使用
cast
  cast
(
expression
as
data_type
)
2、使用
convert
  convert
(data_type[(length)],
expression
[,
style])
3、参数说明
  expression
  是任何有效的表达式。
  data_type:
  目标系统所提供的数据类型,包括
bigint

sql_variant。不能使用用户定义的数据类型。
  length
  nchar、nvarchar、char、varchar、binary

varbinary
数据类型的可选参数。
  style
  日期格式样式,借以将
datetime

smalldatetime
数据转换为字符数据(nchar、nvarchar、char、varchar、nchar

nvarchar
数据类型);或者字符串格式样式,借以将
float、real、money

smallmoney
数据转换为字符数据(nchar、nvarchar、char、varchar、nchar

nvarchar
数据类型)。
二、cast和convert的代码示例
sql
代码
复制
select
cast('123'
as
int)
--
123
select
convert(int,
'123')
--
123
select
cast(123.4
as
int)
--
123
select
convert(int,
123.4)
--
123
select
cast('123.4'
as
int)
select
convert(int,
'123.4')
--
conversion
failed
when
converting
the
varchar
value
'123.4'
to
data
type
int.
select
cast('123.4'
as
decimal)
--
123
select
convert(decimal,
'123.4')
--
123
select
cast('123.4'
as
decimal(9,2))
--
123.40
select
convert(decimal(9,2),
'123.4')
--
123.40
declare
@num
money
set
@num
=
1234.56
select
convert(varchar(20),
@num,
0)
--
1234.56
select
convert(varchar(20),
@num,
1)
--
1,234.56
select
convert(varchar(20),
@num,
2)
--
1234.5600
三、convert函数的style参数说明
1、date

time
样式
不带世纪数位
(yy)
带世纪数位
(yyyy)
输入/输出
-
0

100
mon
dd
yyyy
hh:miam(或
pm)
1
101
1
=
mm/dd/yy
101
=
mm/dd/yyyy
2
102
2
=
yy.mm.dd
102
=
yyyy.mm.dd
3
103
3
=
dd/mm/yy
103
=
dd/mm/yyyy
4
104
4
=
dd.mm.yy
104
=
dd.mm.yyyy
5
105
5
=
dd-mm-yy
105
=
dd-mm-yyyy
6
106
6
=
dd
mon
yy
106
=
dd
mon
yyyy
7
107
7
=
mon
dd,
yy
107
=
mon
dd,
yyyy
8
108
hh:mi:ss
-
9

109
mon
dd
yyyy
hh:mi:ss:mmmam(或
pm)
10
110
10
=
mm-dd-yy
110
=
mm-dd-yyyy
11
111
11
=
yy/mm/dd
111
=
yyyy/mm/dd
12
112
12
=
yymmdd
112
=
yyyymmdd
-
13

113
dd
mon
yyyy
hh:mi:ss:mmm(24h)
14
114
dd
mon
yyyy
hh:mi:ss:mmm(24h)
-
20

120
yyyy-mm-dd
hh:mi:ss(24h)
-
21

121
yyyy-mm-dd
hh:mi:ss.mmm(24h)
-
126
yyyy-mm-ddthh:mi:ss.mmm(无空格)
-
127
yyyy-mm-ddthh:mi:ss.mmmz(无空格)
-
130
dd
mon
yyyy
hh:mi:ss:mmmam
-
131
dd/mm/yyyy
hh:mi:ss:mmmam
2、float

real
样式

输出
0(默认值)
最多包含
6
位。
根据需要使用科学记数法。
1
始终为
8
位值。
始终使用科学记数法。
2
始终为
16
位值。
始终使用科学记数法。
3、money

smallmoney
样式

输出
0
小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如
4235.98。
1
小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如
3,510.92。
2
小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如
3,510.92。
126
转换为
char(n)

varchar(n)
时,等同于样式
2

以上是关于java 强制类型转换的规则是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Java强制数据类型转换

java中的强制类型转换

Java中的强制类型转换是如何转换的?

Java中的强制类型转换是如何转换的?

怎样让vs2013不进行强制类型转换

java--基本数据类型的转换(强制转换)