我有一个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系统时出现问题。
这真的很奇怪。我敢打赌,如果你乘以10,然后转换成一个字符串,然后转换回一个数字,然后除以10,你会得到-37.5。我不知道为什么它坚持转换为科学记谱法。 – 2013-04-11 19:57:20
此外,如果这不起作用,请尝试将问题标记为'javascript',并且您将覆盖更广泛的受众群体。 – 2013-04-11 19:59:48
我乘以10,然后转换为一个字符串,然后转换回一个数字,然后除以10,仍然得到科学记数法。猜猜我将不得不向IBM报告错误! – 2013-04-12 04:45:32