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