如何在Scala中将数字格式化为百分比?

时间:2016-08-29 14:21:18

标签: scala

在Scala中格式化百分比的最简单/惯用方法是什么?

我有以下解决方案,但我想知道是否存在更简洁的方法:

val value = 0.1456

val s1 = f"the float value is ${value}%.2f" 
val s2= s"the percent value is ${java.text.NumberFormat.getPercentInstance.format(value)}"

value: Double = 0.1456

s1: String = the float value is 0.15
s2: String = the percent value is 15%

3 个答案:

答案 0 :(得分:1)

您可以使用“pimp my library”模式将#include <iostream> #include <string> using namespace std; int main() { string str = "e"; int numericalvalue = ((str[0]) - 'a'); //this line of code im trying to understand cout << numericalvalue; return 0; } 方法添加到双打。

asPercentage

答案 1 :(得分:1)

如果您正在寻找更简洁的方法,以下工作方式将与您在代码中的初步想法一致。在十进制位置上添加也很容易,而不必使用隐式功能。显然,使用隐式方法需要使用这些更好的解决方案。

var aThing = new x.Thing();

只是为了给其他几个跑步(这里显示四舍五入):

val value = 0.1456
val s2 = val s2 = f"the percent value is ${value*100}%.0f%%"

s2: String = the percent value is 15%

显示添加小数位的示例:

val value2 = 0.1416
val s3 = val s2 = f"the percent value is ${value2*100}%.0f%%"

s3: String = the percent value is 14%

答案 2 :(得分:0)

您可以使用f字符串将百分比格式设置为所需的相关小数位。在此示例中,它有4个小数位,但是,如果您只想返回两个小数位,则在下面的字符串中使用.2f。 要返回3个小数位,请使用.3f等。 “它们是4”,您将以结尾的零结尾。

if [[ "$(uname -r)" =~ "Microsoft" ]] ; then
    myDir="/mnt/c/user/stuff"
elseif [[ "$(uname -r)" =~ "generic" ]] ; then
    myDir="/home/user/stuff"
fi