【问题标题】:print float without scientific notation in scala在scala中打印没有科学计数法的浮点数
【发布时间】:2017-12-27 23:28:38
【问题描述】:

我想将浮点数转换为 14 位有效数字

val s = "1200000000".toFloat

输出-1.2E9

我在下面试过了,但是不行

f"$s%1.0f" 但这不适用于所有值 我想要一个接收字符串并返回浮点数的方法。该方法最多支持 15 个有效数字

【问题讨论】:

  • 不,您没有尝试过那样打印。你能分享一下你尝试了什么吗?
  • 更新了问题
  • f"$s%1.0f" 确实适用于所有值。

标签: scala


【解决方案1】:

你可以使用java.math.BigDecimaltoPlainString方法:

val floatValue = "1200000000".toFloat

new java.math.BigDecimal(floatValue).toPlainString 

res0: String = 1200000000

【讨论】:

  • 设置有效位数,使用new java.math.BigDecimal(floatValue).setScale(numDigits, RoundingMode.HALF_EVEN)
【解决方案2】:

你到底想要什么?

如果你想打印一个给定格式的数字,你可以使用这个:

println(f"$myNumber%1.14f")

输出将是:

1200000000.00000000000000

您可以获取更多信息here

【讨论】:

  • 我可以有一个字符串,但不希望它转换为科学计数法,但它最多可以支持 15 个有效数字
  • 1200000000.00000000000000 不是 15 位有效数字
猜你喜欢
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
相关资源
最近更新 更多