2013-04-05 79 views
0

我有一个SSJS函数,下面的代码行保持以科学记数法返回字段'day'的值。除了下面的内容,我还尝试过使用BigDecimal,没有任何区别。所有关于SO和其他博客的关于科学记数法的其他问题都有java的示例,因此我已经尽力尝试了解这些示例应如何解释为SSJS。与exportDoc访问使用getItemValueDouble返回的科学记数法

值存储在文档中的代码下面使用字段名称
字段名称:天
数字数据类型:
数据长度:8个字节
SEQ编号:1
Dup物品编号:0
字段标志:SUMMA RY

-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( '天')通过10我得到-375,如果我再除以10我仍然得到-3.75 E1,如果我使用exportDoc.getItemValueInteger('day'),我会得到-38。

这不会发生整个负数如-2,-108等或正数,即使不是整数。

任何帮助非常感谢,因为这导致导入到我们的HRIS系统时出现问题。

+0

这真的很奇怪。我敢打赌,如果你乘以10,然后转换成一个字符串,然后转换回一个数字,然后除以10,你会得到-37.5。我不知道为什么它坚持转换为科学记谱法。 – 2013-04-11 19:57:20

+0

此外,如果这不起作用,请尝试将问题标记为'javascript',并且您将覆盖更广泛的受众群体。 – 2013-04-11 19:59:48

+0

我乘以10,然后转换为一个字符串,然后转换回一个数字,然后除以10,仍然得到科学记数法。猜猜我将不得不向IBM报告错误! – 2013-04-12 04:45:32

回答

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> 

看起来这则:

screenshot

我甚至尝试设置Notes表单的字段属性以“科学“,但是(当然)对Xpages没有任何影响。

也许我没有得到你想要做的?

+0

是的,我实际上试图导出字段值,并获得科学记数法时使用.getItemValueDouble字段的负值不是整数。我将在本周末的.getItemValueDouble调用之前发布代码。 – 2013-04-13 02:19:17