当前位置:网站首页>数值类型转换02
数值类型转换02
2022-08-03 03:38:00 【Hyf 。】
目录
一、强制类型转换
1、基本说明
自动类型转换的逆过程,将精度大的数值转换为精度小的数值类型。使用时要加上强制转函数,但可能造成精度降低或溢出,格外注意。
2、案例实操
(1)将数据由高精度转换为低精度,就需要使用到强制转换。
(2)强制符号只针对于最近的操作数有效,往往会使用小括号提升优先级。
package chapter02
object Test_08DataTypeConversion {
def main(args: Array[String]): Unit = {
//二、强制数值类型转换
// (1)将数据由高精度转换为低精度,就需要使用到强制转换
val n1:Int = -2.9.toInt
println("n1:"+n1)
// (2)强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
val n2:Int = -2.9.toInt + -3.6.toInt
println("n2:"+n2)
val n3:Int = (-2.9 + -3.6).toInt
println(n3)
}
}
二、数值类型和String类型间转换
1、基本说明
在程序开发中,我们经常需要将基本数值类型转换成String类型。或者将String类型转成基本数值类型。
2、案例实操
(1)基本类型转String类型(语法:将基本类型的值+ " " 即可)
(2)String类型转基本数值类型(语法:sl.toInt , sl.toFloat , sl.toDouble , sl.toByten , sl.toLong , sl.toShort )
package chapter02
object Test_08DataTypeConversion {
def main(args: Array[String]): Unit = {
//三、数值类型和String类型的转换
//(1)数值转String
val n4:Int =37
val n5:String = n4 + ""
println(n5)
//(2)String转换数值
val n:Int = "423".toInt
val k:Float = "12.3".toFloat
val h:Int = "12.3".toFloat.toInt
println(n)
println(k)
println(h)
val k2:Int = (n + k +h).toInt
println(k2)
}
}
(3)注意事项
在将String类型转成基本数值类型时,要确保String类型能够转成有效的数据,比如我们可以把“123” ,转成一个整数,但是不能把“Hello”转成一个整数。
var n5:Int = "12.6" .toInt 会出现 NumberFormatException异常
三、扩展面试题
面试题总结:涉及到强制类型转换的精度缺失和数据溢出的问题
package chapter02
/**
* 128:Int类型,占据4个字节,32位
* 原码 0000 0000 0000 0000 0000 0000 1000 0000
* 补码 0000 0000 0000 0000 0000 0000 1000 0000
*
* 截取最后一个字节,Byte
* 得到补码:1000 0000
* 表示得到最大的负数是 -128
*
* 130:Int类型,占据4个字节,32位
* 原码 0000 0000 0000 0000 0000 0000 1000 0010
* 补码 0000 0000 0000 0000 0000 0000 1000 0010
*
* 截取最后一个字节,Byte
* 得到补码:1000 0010
* 对应原码:1111 1110
* 表示得到最大的负数是 -126
*/
object Test09 {
def main(args: Array[String]): Unit = {
var n:Int = 130
var b:Byte =n.toByte //范围-128——127
println(b)
}
}
边栏推荐
- ClickHouse卸载、重安装
- 电子设备行业智能供应链系统:打破传统供应链壁垒,提升电子设备企业管理效能
- 网工知识角|华为网络工程师,华为、华三、思科设备三层交换机如何使用三层接口?命令敲起来
- 有大佬知道 使用flinksql是 同步的日期字段为null的话怎么处理吗
- 种草一个让程序员男友编程时,记住一辈子的 IDEA 神仙插件!
- compose 位移视图
- MediaRecorder录制屏幕时在部分机型上报错prepare failed:-22
- WinForm(二):WinFrom中Main函数的入参和出参
- PSSecurityException
- 基于 Cyclone IV 在 Quartus 中配置 IP 核中的 PLL、RAM 与 FIFO 的详细步骤及仿真验证
猜你喜欢
软件测试个人求职简历该怎么写,模板在这里

Chinese valentine's day??To the liver is the way!!!!!Auto. Js special position control method

数据库性能系列之索引(中)

高等代数_笔记_配方法标准化二次型

【原创】Auto.js get和post 案例

Domino服务器SSL证书安装指南

解析,强势供应商的管理方法

(2022牛客多校五)H-Cutting Papers(签到)

七夕??继续肝文章才是正道!!Auto.js 特殊定位控件方法

PyTorch installation - error when building a virtual environment in conda before installing PyTorch
随机推荐
【leetcode热题Hot100】——任务调度器
怎么用redis限制同一ip重复刷浏览量
els 消除行
IDEA如何创建同级工程
Auto.js Pro 编写第一个脚本hello world
log4j设置日志的时区
找不到符号@SuperBuilder,你以为真的是Lombok的问题?
urlencode 和rawurlencode的区别
爆肝22个ES6知识点
中非合作论坛非洲产品电商推广季启动 外交部:推动中非合作转型升级
Guys, I don't understand a bit: why the documentation of oracle-cdc writes that the connector can be done exactly-o
百度超级链:鼓励企业做自己的链
让环境自己说话,论环境自描述的重要性
2022中国五金制品行业发展前景分析
这个困扰程序员50年的问题,终于要被解决了?
高等代数_证明_不同特征值的特征向量线性无关
ROS2自学笔记:机器视觉基础
(2022杭电多校五)1010-Bragging Dice (思维)
Summary of some questions about the grain mall
正则表达式与绕过案例