scala 精确到小数点的多数位

2.9. Formatting Numbers and Currency

Problem

You want to format numbers or currency to control decimal places and commas, typically for printed output.

Solution

For basic number formatting, use the f string interpolator shown in Recipe 1.4:

scala> val pi = scala.math.Pi
pi: Double = 3.141592653589793

scala> println(f"$pi%1.5f")
3.14159

A few more examples demonstrate the technique:

scala> f"$pi%1.5f"
res0: String = 3.14159

scala> f"$pi%1.2f"
res1: String = 3.14

scala> f"$pi%06.2f"
res2: String = 003.14

If you’re using a version of Scala prior to 2.10, or prefer the explicit use of the formatmethod, you can write the code like this instead:

scala> "%06.2f".format(pi)
res3: String = 003.14

A simple way to add commas is to use the getIntegerInstance method of thejava.text.NumberFormat class:

scala> val formatter = java.text.NumberFormat.getIntegerInstance
formatter: java.text.NumberFormat = java.text.DecimalFormat@674dc

scala> formatter.format(10000)
res0: String = 10,000

scala> formatter.format(1000000)
res1: String = 1,000,000

You can also set a locale with the getIntegerInstance method:

scala> val locale = new java.util.Locale("de", "DE")
locale: java.util.Locale = de_DE

scala> val formatter = java.text.NumberFormat.getIntegerInstance(locale)
formatter: java.text.NumberFormat = java.text.DecimalFormat@674dc

scala> formatter.format(1000000)
res2: String = 1.000.000

You can handle floating-point values with a formatter returned by getInstance:

scala> val formatter = java.text.NumberFormat.getInstance ...


请参考https://www.safaribooksonline.com/library/view/scala-cookbook/9781449340292/ch02s10.html

你可能感兴趣的:(scala 精确到小数点的多数位)