我的文档cd
字段为44.4
当我使用" script_fields如下:
"doc['cd'].value + 1"
script_fields
值将返回45.400001525878906
请帮助我使用script_fields
值返回45.4
答案 0 :(得分:2)
为了舍入浮点值,请使用Math.round()
函数。
以下将返回两位小数后的值。
Math.round(doc['your_custom_type_var'].value * 100.0)/100.0
如果要在3位小数后向上舍入,则将值更改为:
Math.round(doc['your_custom_type_var'].value * 1000.0)/1000.0
根据您的情况,请执行以下操作:
Math.round((doc['cd'].value + 1) * 10.0 - 0.5 )/10.0 // -0.5 for getting the correct result. For this 45.401 and 45.601 both will return 45.6
备注强>
Math.round()
函数返回与参数最接近的int。例如
Math.round(45.40000152) // will return the value 45
Math.round(45.60000152) // will return the value 46
要获得正确答案,您可以将0.5
替换为实际数字,然后向上舍入。然后它将返回我们想要获得的值。
首先我们将值与10.0一起用于将小数位移一个单位(对于上面的值454.0000152
)。舍入此浮点值的缩减(对于上述值454
),因此我们将整数除以10.0
,以获得从实际值向上舍入一位小数的值(对于上述值45.4
)。
想想,这会有所帮助。