Django表单从javascript接收长数字时返回'NaN'

Django表单从javascript接收长数字时返回'NaN',javascript,python,django,forms,numbers,Javascript,Python,Django,Forms,Numbers,在Django项目中,我有一个javascript,它将图像的一些坐标发送到Django表单。然后用户提交表单,并在应用一些逻辑后,将坐标保存到数据库中。大多数情况下,它工作得很好,但有时我访问有限的javascript会发送这样的数字:55.46353234234234e-14,在表单数据中,我得到这样的变量:u'middle\u img\u center\u y':[u'NaN],而不是我通常得到的数字。然后,我当然会得到这样的值错误:无法将浮点NaN转换为整数。 我不知道我是否可以捕获该数

在Django项目中,我有一个javascript,它将图像的一些坐标发送到Django表单。然后用户提交表单,并在应用一些逻辑后,将坐标保存到数据库中。大多数情况下,它工作得很好,但有时我访问有限的javascript会发送这样的数字:55.46353234234234e-14,在表单数据中,我得到这样的变量:u'middle\u img\u center\u y':[u'NaN],而不是我通常得到的数字。然后,我当然会得到这样的值错误:无法将浮点NaN转换为整数。 我不知道我是否可以捕获该数字并修改它以符合表单的期望,或者我是否可以将表单设置为不同的形式以立即接受这些数字,这是一个forms.FloatField。 谢谢你的帮助

一些代码:

观点:

if request.method == 'GET':
    form = ImageForm()
else:
    form = ImageForm(request.POST)
    ... doing some cropping here then save
表格:

class ImageForm(forms.ModelForm):

class Meta:
    model = Image

top_img_left = forms.FloatField(widget=forms.HiddenInput)
... then more of the same line but with middle, bottom, center, right...
这是一个字符串

js代码:

var topZoomData = $('#img-top-remix').smoothZoom('getZoomData');
$('input[name="top_img_left"]').val(topZoomData.scaledX);
更新:

我现在尝试使用toFixed函数来避免如此大的数字:


显示用于发布表单数据的代码…您是否将其作为字符串发送?代码非常简单,我将在问题中对其进行更新数字55.46353234234234e-14的值是由javascript或Python生成的,请您发布JS代码…@Bastian,vivek要求JS代码,因为JS发送的是值'NaN'而不是数字。你的python错误是试图转换“NaN”,它是一个字符串“不是数字”,因此是“NaN”。显示你用来发布表单数据的代码…你是以字符串形式发送的吗?代码很简单,我会在问题中更新它。数字55.46353234234234e-14的值是由javascript或pythonI生成的,请你发布JS代码…@Bastian,vivek要求JS代码,因为JS发送的是值'NaN'而不是数字。您的python错误是试图转换“NaN”,它是一个字符串“不是数字”,因此是“NaN”。
var topZoomData = $('#img-top-remix').smoothZoom('getZoomData');
$('input[name="top_img_left"]').val(topZoomData.scaledX).toFixed(3);