Scala(二)之“数值”
来源:互联网 发布:mysql设置级联删除 编辑:程序博客网 时间:2024/06/06 19:09
Scala中所有的数值都是对象,包括Byte、Char、Double、Float、Int、Long和Shart。与被称为“非数值类型”的Unit和Boolean一样,这些数值类型都继承扩展自AnyVal特质(trait)
数据类型的精确范围值得查看:
scala> Short.MinValueres45: Short = -32768scala> Short.MaxValueres46: Short = 32767scala> Int.MinValueres47: Int = -2147483648scala> Int.MaxValueres48: Int = 2147483647
复数和日期类型
复数–>Scala自带的math类库;
日期–>Joda Time
- 从字符串到数值
把一个字符串转换成一个Scala的数值类型–>使用String的to*方法
scala> val s = "100"s: String = 100scala> s.toIntres53: Int = 100scala> s.toDoubleres54: Double = 100.0scala> s.toFloatres55: Float = 100.0scala> s.toLongres56: Long = 100scala> s.toShortres57: Short = 100scala> s.toByteres58: Byte = 100scala> val b = BigInt("1")b: scala.math.BigInt = 1scala> val b = BigDecimal("1")b: scala.math.BigDecimal = 1
- 处理除十进制之外的数
scala> Integer.parseInt("1", 2)res60: Int = 1scala> Integer.parseInt("10", 2)res61: Int = 2scala> Integer.parseInt("100", 2)res62: Int = 4scala> Integer.parseInt("1", 8)res63: Int = 1scala> Integer.parseInt("10", 8)res64: Int = 8
- 数值类型转换
把一个数值类型转换成另一中数值类型,不像Java中的强制类型转换,使用在所有数值类型上都可用的to*方法。
scala> 19.45.toIntres68: Int = 19scala> 19.toFloatres69: Float = 19.0scala> 19.toDoubleres70: Double = 19.0scala> 19.toLongres71: Long = 19
- 重载默认数值类型
对一个数值型变量赋值时,Scala会自动把数值类型赋值给变量。定义一个数值类型变量时,可以重载其默认类型。
scala> val a = 1a: Int = 1scala> val a = 1da: Double = 1.0scala> val a = 1fa: Float = 1.0scala> val a = 1000La: Long = 1000
也可以给变量增加类型声明
scala> val a = 0:Bytea: Byte = 0scala> val a = 0:Inta: Int = 0scala> val a = 0:Shorta: Short = 0scala> val a = 0:Doublea: Double = 0.0scala> val a = 0:Floata: Float = 0.0
在指定变量的数据类型时,推荐使用如下格式:
scala> val a = 0:Floata: Float = 0.0scala> val a:Byte = 1a: Byte = 1
类型归属—-java中的向上转型
scala> val s = "Dave"s: String = Davescala> val p = s:Objectp: Object = Dave
- Scala中的++和–
Scala中声明为val的字段是不可变的,它们不能递减或者递增,但是声明为var的Int类型变量可以通过+=,-=方法来修改。
scala> var a = 1a: Int = 1scala> a += 1scala> ares1: Int = 2scala> print(a)2scala> a -= 1scala> print(a)1
浮点数值的比较
scala> val a = 0.3a: Double = 0.3scala> val b = 0.1 + 0.2b: Double = 0.30000000000000004
- 随机数
Scala中scala.util.Random生成随机数。
scala> val r = scala.util.Randomr: util.Random.type = scala.util.Random$@139982descala> r.nextIntres5: Int = -1286667537scala> r.nextInt(100)res6: Int = 60
- 创建一个数值区间、列表或者数组
区间
scala> val r = 1 to 10r: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)// 设置步长scala> val r = 1 to 10 by 2r: scala.collection.immutable.Range = Range(1, 3, 5, 7, 9)// for循环中使用区间scala> for(i <- 1 to 5) println(i)12345// 使用until来创建区间scala> for(i <- 1 until 5) println(i)1234
将区间转换成其他序列
scala> val x = (1 to 10).toArrayx: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)scala> val x = (1 to 10).toListx: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
- 格式化呢数值和金额
//数值格式化scala> val pi = scala.math.Pipi: Double = 3.141592653589793scala> println(f"$pi%1.5f")3.14159// 格式化金额scala> val formatter = java.text.NumberFormat.getCurrencyInstanceformatter: java.text.NumberFormat = java.text.DecimalFormat@774c1scala> println(formatter.format(123.456789))¥123.46scala> println(formatter.format(12345.6789))¥12,345.68
0 0
- Scala(二)之“数值”
- scala学习之:scala的并发编程(二)
- Scala 之控制结构(二)
- Spark之Scala学习之路(二)
- 深度学习之数值计算(二)poor conditioning
- scala学习总结之二
- Scala笔记学习之二
- 二. Scala编程之简介
- scala学习(二)
- scala学习(二)
- Scala初探(二)
- Scala练习(二)
- Scala集合(二)
- scala笔记(二)
- Scala总结(二)
- Scala集合(二)
- scala 初探(二)
- scala(二)
- 用 Delphi 创建服务程序(Service)
- 如何使用Java的反射机制以及调用构造方法?
- Android 布局控件透明度设置
- document.ready和window.onload的区别
- JavaScript迷你技巧
- Scala(二)之“数值”
- 枚举简单用法
- Delphi实现通用的定时自动关机程序
- iOS JSON解析 NSJSONReadingMutableContainers的作用:
- Android开发——Android Studio中配置及使用OpenCV示例
- 利用数据库复制技术实现数据同步更新
- 通过ADOQuery调用SQLServer的存储过程
- Reservoir Sampling
- usaco 01串 Stringsobits