在Javascript中强制使用十进制值,即使是整数
Force decimal value, even on integers, in Javascript
我需要获取一个用户输入的值,并将其强制设置为小数点后6位,即使该值是整数。例如,用户键入12,我需要将其转换为12.000000
, 作为数字。这不是为了显示——我的应用程序另一端的系统需要十进制值,我对此无能为力。
正如我在其他地方读到的,Javascript中的数字都是64位浮点数,所以看起来这应该不是那么困难。
唉,toFixed
在这里不是一个选项,因为它给了我一个字符串值'12.000000'
。我尝试过的所有其他技巧都只产生没有十进制零的整数12
(例如用Number
包装toFixed
,将字符串值除以1,以及其他类似的愚蠢行为)。
是否有可能在Javascript中将整数表示为浮点数,而不以字符串值结束?
感谢所有的评论和回答。不幸的是,@Enzey的评论实际上回答了我的核心问题,他说强制精度只能用字符串来完成。如果他提出这个答案,我就接受。我故意对实现的细节保持模糊,因为我不想知道为什么我想做我正在做的事情,我只是想知道它是否可能。但我想我只是把大家弄糊涂了。不好意思
唉,JavaScript中没有float
或int
这样的东西。您只有Number
,它对12
和12.000000
之间的差异没有丝毫的了解。
如果您将其作为字符串化JSON发送,则可以对数字使用.toFixed
,然后从字符串化JSON中的数字中剥离"符号:
var result = JSON.stringify({
number: (12).toFixed(6)
})
.replace(/"['d]+'.'d{6}"/g, function(v) {
return v.replace(/"/g, '');
});
console.log(result);
相关文章:
- 文本字段显示它是有效的,即使它在ExtJS中是无效的
- 按键时标记为ng的必填字段有效,即使是's是空的
- 使用ajax验证的reCAPTCHA总是返回错误,即使是正确的
- 视频通过javascript被隐藏,但已经开始播放(自动播放模式),即使是's不可见
- 我无法获得热图.js即使是简单的热图也可以工作
- 正则表达式表示数字,不超过 3 位数字,十进制可以是 .50 或 .00
- 在iframe中编辑另一个网页的样式的方法,即使是表面上的
- 页面上的任何按钮都会发送表单,即使是表单标记之外的按钮
- grunt是如何继续构建的,即使是grunt contrib符号链接也是如此;找不到路
- 在更改时,即使是动态插入的输入标记上的日期选择器的处理程序也不会;不起作用
- chrome setInterval()用于模糊选项卡无法正常工作,即使是1秒或更长时间
- 观察到的变化'添加'回调所有项,即使是数据库中已经存在的项
- 在Javascript中强制使用十进制值,即使是整数
- Facebook发送对话框问题(我得到一般的错误,即使是最基本的发送链接)
- Javascript在两个函数后失败,即使是相同的函数
- Jquery ajax总是导致'error'即使是在有效的时候
- 未定义的变量,即使是全局定义的
- jQuery变量out "undefined"即使是全球性的
- iframe拒绝javascript权限的问题,即使是在同一域中
- jQuery Animate Won't Work(即使是样本也不工作)