非常直接的问题。我想要输出一个输出的数字,并将其四舍五入到小数点后两位。我似乎只能使用maxFractionDigits
截断数字(请参阅下面的代码)
如何将数字舍入到2位小数?
<Input
value="{
path: 'helloPanel>/recipient/amount',
type: 'sap.ui.model.type.Float',
formatOptions: {
minFractionDigits: 2,
maxFractionDigits: 2
}
}"
description="Hello {helloPanel>/recipient/name}"
valueLiveUpdate="false"
width="60%"
/>
答案 0 :(得分:3)
您可以通过在formatOptions/roundingMode
中定义specific rounding mode来轻松实现舍入。
By default,舍入模式距离零一半。例如。如果实际值是1.678,则输出将是1.68(在maxFractionDigits: 2
的情况下)。但是,如果实际值为1.671,则输出将为1.67,看起来好像没有计算任何舍入,但这是因为half*
rounds from 5+。
如果您希望UI5始终远离零(无论maxFractionDigits
的下一个数字是否> 4),那么您的代码将如下所示:
<Input value="{
path: 'helloPanel>/recipient/amount',
type: 'sap.ui.model.type.Float',
formatOptions: {
maxFractionDigits: 2,
roundingMode: 'away_from_zero'
}
}"/>
注意:即使doc提到了大写的舍入模式,它们也应该以小写形式使用(留下下划线)在XMLView中。否则会出现模糊的TypeError。
以下是一些显示舍入模式之间差异的图形:
“朝着负无穷大”:-1.678→-1.68 || 1.678→1.67
“朝向正无穷大”:-1.678→-1.67 || 1.678→1.68
四种舍入模式中的一种,但仅从5+开始。
例如。 roundingMode: 'half_ceiling'
: - 1.678→-1.67 || 1.67 4 →1.67即使模式上限。
According to the doc,也有可能定义你自己的mutator但尚未尝试过。
RoundingMode 或函数,用于舍入数字。该函数使用两个参数调用:数字和应保留的小数位数。