使用命令行选项时如何在CasperJS中保留长数字?

时间:2015-12-16 14:51:07

标签: javascript numbers phantomjs casperjs

这样做时:

casperjs somescript.js --number=736280854938322517687376855643288785

并在代码中:

var casper = require('casper').create();
var value = casper.cli.get("number");

console.log(value); // yields: 7.3628085493832246e+35
                    // want: 736280854938322517687376855643288785

我看起来,看着,思索和黑客,但我没有太多运气。简单的解决方案似乎只是将数字转换为字符串。或者将数字作为字符串传递。但是这种语法不适合我。

1 个答案:

答案 0 :(得分:1)

请参阅Raw parameter values

  

默认情况下,cli对象将处理每个传递的参数&将它们转换为适当的检测类型[...]

您需要使用casper.cli.raw.get("number")来获取未解析的值。由于大于2 53 的整数值不能表示为整数without losing precision,因此您需要将它们作为字符串使用或使用一些大整数库(例如{{3 }})。