gpt4 book ai didi

javascript - 将十进制数值复制到组件

转载 作者:行者123 更新时间:2023-12-03 11:40:42 24 4
gpt4 key购买 nike

var valT = @TextToNumber("123,43"); 
getComponent("ValRamasa").setValue(valT);

返回的值为0.,组件ValRamasa:

<xp:inputText id="ValRamasa" disabled="true">
<xp:this.converter>
<xp:convertNumber type="number"
maxFractionDigits="2" locale="ro">

</xp:convertNumber>
</xp:this.converter>
< xp:this.value><![CDATA[#{viewScope.field_2[index]}]]></xp:this.value>
</xp:inputText>

转换器设置为我的区域设置,这样:, 是小数分隔符,. 是千位分隔符。

如果我尝试var valT = @TextToNumber("123.43"); => 123,43

为什么我尝试上面的例子?我有一个输入字段(whith locale="ro" ),用户可以在其中添加一些数字(使用 , 作为小数分隔符),并且使用这个值我想做了一些数学计算,但我注意到出现了上述问题。

我的计算(我正在使用重复控件):

    var number = getComponent("inputText11").getValue();
var procent = getComponent("inputText19").getValue();

for(var i = 0;i<=index ;i++){
// ****** val - is the 'problem' value **** IF val = integer => it works / IF val = decimal ( with , as decimal separator ) => IT don't works
var val = viewScope.field_1[i];
/* <xp:inputText id="inputText23">
<xp:this.value><![CDATA[#{viewScope.field_1[index]}]]></xp:this.value>
<xp:this.converter>
<xp:convertNumber type="number" locale="ro" maxFractionDigits="2">
</xp:convertNumber>
</xp:inputText>*/

//val = val.replace(",",".");
val = @TextToNumber(val);

//number = Number(number) - Number(val);
number -= val;
var garantie = procent*val/100;

}

//var valT = @TextToNumber("123.43");
getComponent("ValRamasa").setValue(number);
getComponent("ValGarantie").setValue(garantie);

最佳答案

@TextToNumber 肯定不是你的问题。

您处理的组件是数字类型,这意味着它存储为数字 - 无论任何“显示”属性如何。

确保您在某处有隐式文本转换,并尝试将此文本转换回来:

然后区域设置将被忽略并会引发错误。

在您发布的计算代码中,也没有明显的错误。

但是:“viewScope.field_1”中的值来自哪里?我猜想,这些变量中有“文本”,导致了这个问题。

关于javascript - 将十进制数值复制到组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26292606/

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