gpt4 book ai didi

xpages - 去掉货币的小数部分

转载 作者:行者123 更新时间:2023-12-02 01:29:22 24 4
gpt4 key购买 nike

我正试图摆脱作为 Number 字段存储在 Notes 文档中的字段的小数部分。在 xPages 中,它默认显示为 Double,然后我想将其转换为货币。当我使用标准货币转换器时,我无法摆脱小数部分。

我尝试将 Double 转换为显示 Integer Only 并以编程方式将 Double 转换为 intValue。只要我不使用似乎无论如何都会添加分数的货币转换器,这就可以正常工作。我猜这是因为 default fractionpart 是 2。

我想一个重要的线索是我在谈论瑞典货币。在瑞典,我们以这种模式显示货币:# ### ### kr。标点符号为空格,数字后为货币符号。

我尝试像上面的例子那样使用Custom Converter - Pattern,但是我没有得到正确的标点符号。所以 - 我想要实现的是:示例:112 000 kr代码示例将返回:112 000,00 kr

当然我可以做一个字符串Conversion-concatenation operation来实现这个但最好的是如果有一种方法可以获取默认小数部分 CurrencyCode 并操纵它..?在我看来,这似乎是一个错误,因为"Display Integer Only" 似乎被忽略了。

也许我还没有找到可以使用的模式转换

代码示例:

<xp:inputText value="#{document1.totSumCost}" id="totSumCost1">
<xp:this.converter>
<xp:convertNumber type="currency" currencySymbol="kr" currencyCode="SEK" integerOnly="true" maxFractionDigits="0">
</xp:convertNumber>
</xp:this.converter>
</xp:inputText>

我“有点”以这种有点令人不安的方式自己解决了这个问题:

<xp:inputText value="#{document1.totSumCost}"
id="inputText2">
<xp:this.converter>
<xp:convertNumber type="currency" integerOnly="true"
locale="sv" maxFractionDigits="0" currencySymbol=" ">
</xp:convertNumber>
</xp:this.converter>
</xp:inputText>
<xp:text escape="true" id="computedField6">
<xp:this.value><![CDATA[#{javascript:return " kr"}]]></xp:this.value>
</xp:text>

最佳答案

使用自定义转换器:

<xp:this.converter>
<xp:customConverter>
<xp:this.getAsString><![CDATA[#{javascript:
value.toFixed(0).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 ") + " kr"
}]]></xp:this.getAsString>
<xp:this.getAsObject><![CDATA[#{javascript:
parseFloat(value.replace(" ", ""))
}]]></xp:this.getAsObject>
</xp:customConverter>
</xp:this.converter>

它将数字转换为瑞典货币格式,如
123456789.12 --> 123 456 789 kr
并将其解析回 float 。

如果您想将值保存为整数,请使用 parseInt() 而不是 parseFloat()

关于xpages - 去掉货币的小数部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35036661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com