首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala:从科学表示法中转换一个双,而不失去精度?

Scala:从科学表示法中转换一个双,而不失去精度?
EN

Stack Overflow用户
提问于 2018-06-25 14:29:46
回答 1查看 3.1K关注 0票数 0

我想在scala中将一个双1.1231053E7转换为11,231,053.0。目前,我转换双值的方法是执行这个f"$number",其中number是一个双值。不幸的是,这只会给我一个1.1231053E7字符串。

我可以用NumberFormatDecimalFormat把它从科学符号中转换出来,但这也迫使我选择预定的精度。我想要灵活的精度。所以..。

代码语言:javascript
复制
val number1 = 1.2313215
val number2 = 100
val number4 = 3.333E2

..。当皈依时..。

代码语言:javascript
复制
1.2313215
100
333.3

目前,DecimalFormat让我在构造过程中选择精度,比如:new DecimalFormat(##.##)。在#之后的每个.表示小数点。

如果我使用f"$number",它将正确地处理小数点,但是,正如我前面所说的,它无法处理科学符号。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 15:13:43

只需在.之后决定需要多少个位置,写出隐藏零的数字:

代码语言:javascript
复制
val fmt = new java.text.DecimalFormat("#,##0.##############")
for (x <- List[Double](1.2313215, 100, 3.333E2)) println(fmt.format(x))

指纹:

代码语言:javascript
复制
1.2313215
100
333.3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51025902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档