Javascript 显示的小数位数多于显示的小数位数

Javascript 显示的小数位数多于显示的小数位数,javascript,html,post,Javascript,Html,Post,我有一个表单,用户在其中输入一些值,我使用JS进行一些计算,并在一个文本框中返回结果,该文本框只向用户显示两位小数 如果他想保存结果,他按下一个提交按钮,该按钮将发布文本框值并将其保存在我的数据库中 我想知道是否可以只显示两位数字,但发布/存储更多(这让我想起Excel,在Excel中,您可以看到有限的小数,但在某个地方它存储了更精确的值) 我曾考虑创建一个包含完整值的隐藏字段,并将其发布和存储,但我想知道是否有更优雅的解决方案。选项1 如果您将未取整的答案存储在window对象中,您可以随时使

我有一个表单,用户在其中输入一些值,我使用JS进行一些计算,并在一个文本框中返回结果,该文本框只向用户显示两位小数

如果他想保存结果,他按下一个提交按钮,该按钮将发布文本框值并将其保存在我的数据库中

我想知道是否可以只显示两位数字,但发布/存储更多(这让我想起Excel,在Excel中,您可以看到有限的小数,但在某个地方它存储了更精确的值)


我曾考虑创建一个包含完整值的隐藏字段,并将其发布和存储,但我想知道是否有更优雅的解决方案。

选项1

如果您将未取整的答案存储在window对象中,您可以随时使用javascript将其取回

// ...
//calculating
// ...

var answer = 1 + 1;
window.answer = answer;

// Write answer to textbox in 2 decimals
theTextbox.value = Math.round(answer * 100) / 100;
现在可以使用AJAX将值存储在数据库中

使用我的此选项,最新答案始终存储为:

window.answer;
即使在函数运行之后。它将一直保留在那里,直到页面刷新为止

选项2

将值存储在隐藏的输入字段中,并等待用户单击按钮发布表单

// ...
//calculating
// ...

var answer = 1 + 1;

theHiddenInput.value=answer;

// Write answer to textbox in 2 decimals
theTextbox.value = Math.round(answer * 100) / 100;

我只是想提出一个隐藏的领域,然后你在你的问题中先发制人地提到了这一点。我想说这是最好的方法。为了获得额外的积分,不要给可见的文本框一个
name
属性,这样它就不会被发送到服务器-节省了几个字节的带宽XDYes我可能会使用隐藏字段。保持事物的简单和干净。您可以将可见的文本框替换为
span
,以避免与表单字段混淆,或者Niets建议不要为其指定
名称