• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Scala 四舍五入到小数指定位数 不足位填0

武飞扬头像
明远菌
帮助1

四舍五入 保留到个位

val d1 = 1.4
println(d1.round)

val d2 = 1.5
println(d2.round)
  • 运行结果
1
2

四舍五入 保留到小数后N位

基于其保留到个位数的特点,若要保留小数后N位,则需要先将数进行放大,四舍五入后再缩小即可实现,放大缩小倍数为10的N次方。如下所示
注意:在最后是除了一个浮点数,如“100.0”,因为四舍五入后的数为整数型,直接除整数其结果会舍去小数部分(结果为整数型),故需除一个浮点数

  • 保留小数后2位
val d1 = 1.602
val t1 = d1 * 100
println(t1.round / 100.0)

val d2 = 1.607
val t2 = d2 * 100
println(t2.round / 100.0)
  • 运行结果
1.6
1.61

四舍五入 保留到小数后N位 不足位填0

上面的我们实现的指定小数位数的四舍五入,但第一个数据被四舍五入后,小数第二位未被填0,因此我们在下面将实现不足位数填0(返回值为String

// 初始值
val d = 1.602
// 四舍五入保留小数后两位并将其转换为字符型
var r = ((d * 100).round / 100.0).toString
// 使用split函数正则表达式匹配“.”,以点号分割后,提取其小数部分,存入变量t
var t = r.split("\\.")(1)
// 小数部分位数小于阈值的,在其小数位添加“0”
while(t.length < 2){
    t  = "0"
    r  = "0"
}
println(r)
  • 运行结果
1.60

split说明

根据给定正则表达式的匹配拆分此字符串

String[] split(String regex)

根据匹配给定的正则表达式来拆分此字符串

String[] split(String regex, int limit)

参考文献
1.4.1 scala 浮点数四舍五入 https://www.fashici.com/tech/271.html
Scala 字符串 https://www.runoob.com/scala/scala-strings.html
正则表达式 — 转义 “ \ “ ,特殊字符注意事项(七) https://blog.csdn.net/m0_52409770/article/details/123514539

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgacikb
系列文章
更多 icon
同类精品
更多 icon
继续加载