我从客户端的内部API获取了一个庞大的数据集.它将包含一堆价格的数字数据,如:31.23美元.他把它们给了我{"spend":"21.23"}很好,但我担心在1000多个项目之后运行parseFloat()所有这些值(在绘制它们之上)可能在客户端的浏览器上占用大量资源.
有没有人这样做过?
== ==更新
对不起.我的问题太模糊了.我担心的是它是一个字符串,我正在解析它.我的问题是parseFloat比int更快.即parseFloat("12.12")只是简单地追加div而不仅仅是追加12.12,如果是这样,速度会快多少.
我在非常高的数字或非常低的数字上使用parseFloat.返回值如123*10e15,我需要像123*10 ^ 15.15需要在上层写作作为战俘.谢谢.
我正在尝试开发一个带有数值的转换网站:
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
Run Code Online (Sandbox Code Playgroud)
通过textarea然后parseFloat数字以执行计算.这些是我得到的结果:
textarea input = 12,000.12
value after parseFloat = 12
Run Code Online (Sandbox Code Playgroud)
parseFloat无法识别数字的格式吗?我得到相同的结果:
textarea input: 12.000,12
value after parseFloat = 12
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我似乎需要删除逗号,因为parseFloat不读取它们以及欧洲符号剥离小数并将逗号更改为小数以便parseFloat正确读取输入.关于如何解决这个问题的任何想法?我的猜测是我需要将字符串输入标识为欧洲或美国十进制表示法,然后执行所需的操作以为parseFloat准备字符串.我将如何实现这一目标?所有贡献都表示赞赏.使用HTML5和Javascript.这是我的第一个网站,所以请放轻松.
最好,RP
致所有贡献者......谢谢!到目前为止,所有的输入都是甜蜜的.我不认为我们将能够使用单个替换语句来正确地删除欧洲和美国符号,所以我认为我应该以某种方式使用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); …Run Code Online (Sandbox Code Playgroud) 我试图让 parseFloat 将userInput( prompt) 转换为数字。
例如:
var userInput = prompt("A number","5,000")
function parse_float(number) {
return parseFloat(number)
}
Run Code Online (Sandbox Code Playgroud)
当 时userInput = 5,000,parse_Float(userInput)返回5。
但是,如果用户输入一个值来更改其他内容(即:进行银行存款或取款),那么我要正常工作,parse.Float(userInput)需要返回5000,而不是5。如果有人能告诉我如何做到这一点,那将对我有很大帮助。提前致谢。
这里最重要的是我不能设置一个变量,需要在运行中:
处理纬度。让我们称之为lat。假设在这种情况下 lat 是 123.4567
lat.toFixed(2).parseFloat();
TypeError: Object 123.35 has no method 'parseFloat'
Run Code Online (Sandbox Code Playgroud)
最好的方法来解决这个问题?
我面临着一个新问题。我有以下用例。
var a = parseFloat(10); // Returns 10
var b = parseFloat(1.62); // Returns 1.62
var c = a + b; // Returns 11.620000000000001
Run Code Online (Sandbox Code Playgroud)
我想要c返回11.62。这里有什么问题?
当想要从"Sometext 330"这样的字符串"parseInt或parseFloat"时,我总是有一个"NaN"
Var a = "Sometext 330"
return parseFloat(a);
Run Code Online (Sandbox Code Playgroud)
它将返回"NaN",但我需要整数或浮点数330
我有一个像这样的STRING切片数组:
[[header1 header2 startdate enddate header3 header4]
[item1 100 01/01/2017 02/01/2017 5343340.56343 3.77252223956]
[item2 554 01/01/2017 02/01/2017 22139.461201388 17.232284405]]
Run Code Online (Sandbox Code Playgroud)
请记住,阵列不断增加.我只是发布一个示例数组.
现在我将一些浮点数转换为字符串,以便我可以将它附加到字符串切片.但是,我需要用这些数字做一些数学计算.我想将第二个切片的字符串编号(5343340.56343)添加到第三个字符串编号(22139.461201388).与每个切片中的其他2个浮点数相同.要做到这一点,我需要先将它们转换为float64.得到总和之后,我需要将它们转换回字符串,这样我就可以将它附加到我的切片上,我将弄清楚该怎么做.
要将字符串项转换为float64,这就是我所拥有的:
for _, i := range data[1:] {
if i[0] == "item1" {
j := strconv.ParseFloat(i[4], 64)
}
if i[0] == "item2" {
k := strconv.ParseFloat(i[4], 64)
}
sum := j + k
}
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:单值上下文中的多值strconv.ParseFloat()所以我的问题是:
如何将字符串值转换为Float64.
可选:关于如何从每个切片添加2个浮点数的任何建议?
任何帮助表示赞赏!
我想执行浮点数的加法。我永远只有小数点后两位。
但是如果我这样做:
var num = 0;
num += parseFloat("2434545.64").toFixed(2);
num += parseFloat("454560.91").toFixed(2);
Run Code Online (Sandbox Code Playgroud)
我得到的值是因为02434545.64454560.91
它是附加而不是添加。另外,添加总是准确的吗?
我有一个输入,用户在其中输入数字、整数或浮点数。我想知道这个数字是否正确,例如检查输入2r是否不正确。我的第一个方法是使用parseFloat,但它并没有抱怨这一点:
parseFloat('2r') // returns 2
Run Code Online (Sandbox Code Playgroud)
实际上,根据文档,这是预期的行为
你如何检查这2r是错误的?