我知道在Scala.js中(不能使用java.text.DecimalFormat
),我可以这样写:
val number = 1.2345
println(f"$x%.2f") // "1.23"
但是,这似乎不起作用:
val decimalPlaces = 2
println(f"$x%.${decimalPlaces}f")
// [error] Missing conversion operator in '%'; use %% for literal %, %n for newline f"$x%.${decimalPlaces}f"
// also doesn't work: (f"$x%." + decimalPlaces + "f").toFloat
如何获得可变的十进制精度?
答案 0 :(得分:2)
这有效
val number = 1.2345
val decimalPlaces = 2
println(("%." + decimalPlaces + "f").format(number))
StringLike
有一个对format
的隐式调用。
答案 1 :(得分:0)
我认为它不起作用的原因是表达式中无处:
newIntent
我们提供了有关如何解析变量的顺序。
您需要人为强制执行它。与@nattyddubbs的答案类似:
const resetIntent = (handlerInput) => {
const intent = {
name : 'myIntentName',
confirmationStatus: 'NONE',
slots : {
slotOne: {
name: 'slotOne',
confirmationStatus: 'NONE'
}
}
}
return handlerInput.responseBuilder
.addDelegateDirective(intent)
.getResponse();
}