我试图从数据网格解析两个值。字段是数字,当它们有逗号(例如554,20)时,我无法获得逗号后的数字。我试过parseInt和parseFloat。我该怎么做呢?
当前回答
用点代替逗号。
这只会返回554:
var value = parseFloat("554,20")
这将返回554.20:
var value = parseFloat("554.20")
所以最后,你可以简单地使用:
var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))
不要忘记parseInt()应该只用于解析整数(不能解析浮点数)。在你的例子中,它只会返回554。此外,在浮点数上调用parseInt()将不会四舍五入该数字:它将取其底数(最接近的较低整数)。
扩展的例子来回答Pedro Ferreira的问题:
如果文本字段包含数千个分隔点,如1.234.567,99,这些可以通过另一个替换提前消除:
var fValue = parseFloat(document.getElementById("textfield").value.replace(/\./g,"").replace(",","."))
其他回答
用点代替逗号。
这只会返回554:
var value = parseFloat("554,20")
这将返回554.20:
var value = parseFloat("554.20")
所以最后,你可以简单地使用:
var fValue = parseFloat(document.getElementById("textfield").value.replace(",","."))
不要忘记parseInt()应该只用于解析整数(不能解析浮点数)。在你的例子中,它只会返回554。此外,在浮点数上调用parseInt()将不会四舍五入该数字:它将取其底数(最接近的较低整数)。
扩展的例子来回答Pedro Ferreira的问题:
如果文本字段包含数千个分隔点,如1.234.567,99,这些可以通过另一个替换提前消除:
var fValue = parseFloat(document.getElementById("textfield").value.replace(/\./g,"").replace(",","."))
如果有人正在寻找一种从任意字符串解析float的方法,
可以这样做:
function extractFloat(text) {
const match = text.match(/\d+((\.|,)\d+)?/)
return match && match[0]
}
extractFloat('some text with float 5.25') // 5.25
如果它们是单独的值,试试这个:
var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])
如果它们是单个值(比如在法语中,1 / 2写成0,5)
var value = parseFloat("554,20".replace(",", "."));
Try
让STR ="554,20"; Let float = +str.replace(',','.'); Let int = str.split(',').map(x=>+x); console.log({浮动,int});
你试过这样做吗?: p
var str = '3.8';ie
alert( +(str) + 0.2 );
+(字符串)将字符串转换为浮点数。
方便的!
所以为了解决你的问题,你可以这样做:
var floatValue = +(str.replace(/,/,'.'));
推荐文章
- 向对象数组添加属性
- 如何在Redux应用程序中动态加载代码分割的减速器?
- Angular 2+和debounce
- 检测涡旋方向
- 在react native中隐藏/显示组件
- 在网页上用鼠标模拟震颤(例如帕金森病)?
- console.log()和console.debug()的区别?
- 如何删除和清除所有的本地存储数据
- 如何从给定的html字符串中删除前导和尾随空白?
- 如何为KnockoutJS调试模板绑定错误?
- 将一个二进制的NodeJS Buffer转换为JavaScript的ArrayBuffer
- 检测浏览器标签是否有焦点
- JavaScript在数组中
- 如何从JavaScript中使用正则表达式的字符串中剥离所有标点符号?
- 如何修改标签文本?