我有一个带有以下代码行的SSJS函数,它以科学记数法继续返回字段'day'的值。我已尝试使用BigDecimal除了以下没有区别。所有关于SO和其他关于科学记数法到十进制的博客的所有其他问题都有java的例子,所以我已经尽力尝试如何解释这些例子的SSJS。
使用字段名称在以下代码中使用exportDoc访问的文档中存储的值
字段名称:日期
数据类型:数字
数据长度:8字节
Seq Num:1
Dup Item ID:0
字段标志:摘要
-37.5
exportDoc.getItemValueDouble('day');
returned value: -3.75E1
var dform:java.text.DecimalFormat = new java.text.DecimalFormat("0.##");
var hrs:String = dform.format(exportDoc.getItemValueDouble('day'));
//using hrs:Double returns same value
returned value: -3.75E1
var hrs:String = dform.parse(@Text(exportDoc.getItemValueDouble('day')));
//using hrs:Double returns same value
returned value: -3.75E1
var hrs = Number(exportDoc.getItemValueDouble('day'));
returned value: -3.75E1
如果我将exportDoc.getItemValueDouble('day')乘以10得到-375,如果我除以10我仍然得到-3.75E1,如果我使用exportDoc.getItemValueInteger('day')我得到-38
即使不是整数,也不会出现-2,-108等整数负数或正数。
非常感谢任何帮助,因为这会导致导入我们的HRIS系统时出现问题。
答案 0 :(得分:1)
你确定没有设置某种转换器吗?
我只是把一个测试页拉到一起,但这里没有发生:
<xp:panel id="upperPanel">
<xp:label value="Number field (shows value stored in number field): "
id="label1"></xp:label>
<xp:inputText id="inputText1" value="#{document1.subNum}">
<xp:this.converter>
<xp:convertNumber type="number"></xp:convertNumber>
</xp:this.converter>
</xp:inputText>
</xp:panel>
<xp:panel id="lowerPanel">
<xp:label id="label2"
value="Calculated Number (computes value using .getItemValueDouble()): ">
</xp:label>
<xp:text escape="true" id="computedField1">
<xp:this.value><![CDATA[#{javascript:currentDocument.getItemValueDouble("subNum")}]]>
</xp:this.value>
<xp:this.converter>
<xp:convertNumber type="number"></xp:convertNumber>
</xp:this.converter>
</xp:text>
</xp:panel>
然后看起来像这样:
我甚至尝试将Notes表单的字段属性设置为“科学”,但(当然)对Xpages没有任何影响。
可能我没有得到你想要做的事情?