gpt4 book ai didi

grails - Grails中输入字段的动态格式化(十进制)

转载 作者:行者123 更新时间:2023-12-02 15:33:36 29 4
gpt4 key购买 nike

我有一个类型为BigDecimal的属性“initialPrice”的“Trade”类。该属性可以
根据另一个类别“Symbol”中包含的属性“decimals”,小数位数会有所不同,因此需要使用不同的格式,例如“#,### 0。##”,“#,### 0。#####”等
输出字段没有问题-我做了一个TagLib来解决这个问题。

问题出在输入字段上。默认值是我用3个小数点四舍五入,因此,如果您使用3个以上的小数,则更新时会丢失这些小数。

我不知道如何或是否可以在这里使用TagLib。我一直在尝试许多不同的方法,但是都没有奏效。

这是我的TagLib:

class PriceTagLib {
def fmtPrice = {attrs, body->
def BigDecimal number = attrs.number
def int noOfDecimals = attrs.decimals
switch (noOfDecimals) {
case 1: out <<new DecimalFormat('###,##0.#').format(number)
break
case 2: out << new DecimalFormat('###,##0.##').format(number)
break
case 3: out << new DecimalFormat('###,##0.###').format(number)
break
case 4: out << new DecimalFormat('###,##0.####').format(number)
break
case 5: out << new DecimalFormat('###,##0.#####').format(number)
}
}
}

这是我的课...
class Symbol {
String name //The name of the symbol e.g. EURUSD, USDCAD etc.
int decimals

static hasMany = [trades:Trade]

}


class Trade {
static belongsTo = [symbol:Symbol, strategy:Strategy]
static hasMany = [positions:Position]

BigDecimal initialPrice
Symbol symbol
Strategy strategy
Position positions

static constraints = {
type(inList:["Sell", "Buy"])
initialPrice(scale:5)
positions(nullable:true)
}

}

这来自show.gsp,它可以按我的需要工作:
<span class="property-value" aria-labelledby="initialPrice-label"><g:fmtPrice decimals="${tradeInstance.symbol.decimals}" number="${tradeInstance.initialPrice}"></g:fmtPrice></span>

这是我需要修改的行-即我需要在“值”参数的引号之间写的内容。
Maybee我需要更换整条生产线吗?
该行位于_form.gsp模板中。
<g:field name="initialPrice" value="${tradeInstance.initialPrice}" required=""/>

希望任何人都能对此有所帮助。

提前致谢...

最佳答案

您只需在value属性内调用标签库:

<g:field name="initialPrice" value="${g.fmtPrice(decimals: tradeInstance.symbol.decimals, number: tradeInstance.initialPrice)}" required=""/>

关于grails - Grails中输入字段的动态格式化(十进制),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15653908/

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