如何打印数字值?

时间:2015-11-13 10:30:05

标签: javascript mongodb

所以,我试图从一个mongoshell打印一个NumberLong到控制台。 但是,当我将NumberLong变量转换为字符串时,该值向下舍入。在初始搜索之后,它看起来好像是因为javascript的精度限制浮动。 这是mongoshell中的一个例子:

var abc = NumberLong(2517720935641120769);
print(abc);

输出

NumberLong("2517720935641120769")

但是,当我尝试将其转换为字符串以仅打印值

print(''+abc);

输出

2517720935641121000

在NumberLong中打印值有什么技巧吗?

2 个答案:

答案 0 :(得分:1)

确保在创建NumberLong字段时引用该数字。如果你没有引用你的值,那么它将被转换为浮点数,你将失去精度。

NumberLong(123123123123131123).toString()
>>NumberLong("123123123123131120")

但是,如果您引用您的值,它将被正确存储并返回:

NumberLong("123123123123131123").toString()
>>NumberLong("123123123123131123")

两个语句都直接在MongoShell中执行,>>之后的值给出了MongoShell(版本3.0.7)返回的输出

答案 1 :(得分:0)

使用未记录的exactValueString属性:

> NumberLong("2517720935641120769").exactValueString
2517720935641120769