javascript - 为什么我的 textarea (HTML) 值显示 12,000,000.11 但在 parseFloat 之后该值只有 12?

标签 javascript html decimal number-formatting parsefloat

我正在尝试开发一个采用数值的转换网站:

 1,200.12
 or
 1.200,12
 or
 1200.12
 or
 1200,12
 and have them all interpreted as 1200.12 by parseFloat.

 I would also like decimals to be able to be interpreted.
 0.123
 or
 0,123     
 as 0.123

通过一个textarea然后parseFloat这个数字来进行计算。 这些是我得到的结果:

textarea input = 12,000.12
value after parseFloat = 12

parseFloat 不能识别数字的格式吗? 我得到相同的结果:

textarea input: 12.000,12
value after parseFloat = 12

我该如何解决这个问题?看来我需要去掉逗号,因为 parseFloat 不会读取超出它们的范围,并且使用欧洲符号会去掉小数点并将逗号更改为小数点,以便 parseFloat 正确读取输入。关于如何解决这个问题的任何想法?我的猜测是我需要将字符串输入标识为欧洲或美国十进制表示法,然后执行所需的操作来为 parseFloat 准备字符串。我将如何实现这一目标?感谢所有贡献。使用 HTML5 和 Javascript。这是我的第一个网站,所以请放轻松。

最好的, 回复

致所有贡献者...谢谢!到目前为止,所有的输入都很好。我认为我们无法使用单个替换语句来正确去除欧洲和美国符号,所以我认为我应该以某种方式使用 REGEX 来确定符号,然后拆分为 if else 语句以执行单独的替换功能在每个单独的符号上。

var input, trim;
input = "1.234,56"   //string from textarea on page
if(/REGEX that determines American Notation/.test(input){ 
   trim =  input.replace(/\,/,"");//removes commas and leaves decimal point);
}
else(/REGEX that determine European Notation/.test(input)/){ //would qualify input here
   rep = input.replace(/\./,"");//removes all decimal points);
   trim = rep.replace(/\,/,"."//changes the remaining comma to a decimal);
}
//now either notation should be in the appropriate form to parse
number = parseFloat(trim);

这可以使用 REGEX 吗?请看我的另一个问题。 Regex - creating an input/textarea that correctly interprets numbers

最佳答案

一种方法是去掉逗号,例如:

.replace(",", "")

从那里你应该能够 parseFloat

用 fiddle 更新:http://jsfiddle.net/aLv74xpu/2/

关于javascript - 为什么我的 textarea (HTML) 值显示 12,000,000.11 但在 parseFloat 之后该值只有 12?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436575/

相关文章:

javascript - Visual Studio 警告这个正则表达式的语法怎么样?

java - 为什么我们需要 JSF 标签,如果我们有 HTML 标签

Java奇怪的ceil转换

java - 格式化小数的长度

javascript - Firefox 扩展将 Javascript 数组作为对象发送

javascript - Knockout JS 单元测试和 ViewModel 耦合和依赖关系

javascript - ASP.net C# 通过 javascript 启用和禁用必填字段验证器

php - href 不适用于表 td,但适用于 ul li

javascript - 如何从网页 (HTML/Javascript) 向 Java 应用程序发送简单消息?

java - 二进制到十进制转换