这是一个简单的场景.我想在我的网站上显示两个值的减法:
//Value on my websites HTML is: "75,00"
var fullcost = parseFloat($("#fullcost").text());
//Value on my websites HTML is: "0,03"
var auctioncost = parseFloat($("#auctioncost").text());
alert(fullcost); //Outputs: 75
alert(auctioncost); //Ouputs: 0
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我做错了什么?
parseFloat("NaN")
Run Code Online (Sandbox Code Playgroud)
返回"NaN",但是
parseFloat("NaN") == "NaN"
Run Code Online (Sandbox Code Playgroud)
返回false.现在,这确实是一件好事,它确实会返回错误,但我不明白这是怎么回事.JavaScript创建者是否只是将此作为特例?因为否则我无法理解这是如何返回false的.
我有javascript函数自动添加输入字段,但添加像1.35 + 1.35 + 1.35这样的数字给我输出4.050000000000001,仅作为一个例子.如何将总数舍入到第二个小数而不是那个长字符串?
输入字段将不仅仅包含1.35示例,因此我需要总计在小数点后永远不会超过2个点.这是完整的工作代码:
<html>
<head>
<script type="text/javascript">
function Calc(className){
var elements = document.getElementsByClassName(className);
var total = 0;
for(var i = 0; i < elements.length; ++i){
total += parseFloat(elements[i].value);
}
document.form0.total.value = total;
}
function addone(field) {
field.value = Number(field.value) + 1;
Calc('add');
}
</script>
</head>
<body>
<form name="form0" id="form0">
1: <input type="text" name="box1" id="box1" class="add" value="0" onKeyUp="Calc('add')" onChange="updatesum()" onClick="this.focus();this.select();" />
<input type="button" value=" + " onclick="addone(box1);">
<br />
2: <input type="text" name="box2" id="box2" class="add" value="0" onKeyUp="Calc('add')" onClick="this.focus();this.select();" …Run Code Online (Sandbox Code Playgroud) 如何处理这个很好的方法?
我已经考虑过删除逗号,然后解析为float.
你知道更好/更清洁的方式吗?
谢谢
这似乎是一个愚蠢的问题,但我无法弄清楚如何将代表美分的整数转换为美元.
3000 - > 30.00
在javascript中......
我正在使用ParseFloat,但它只返回整数= /我需要始终显示分数,即使它是0.
在这个字体大小调整大小的教程中:
作者使用parseFloat和第二个参数,我在这里读到:
应该指定所提供的数字 - 字符串的基数,以便您可以将它作为第二个参数提供给它'0x10'并将其识别为HEX.
问题是,我测试的浏览器似乎没有这样做.
这些家伙是否与Java混淆了?
当我添加两个文本框值为1.001和0.001然后我做了parseFloat我得到1.0019999999.我想要它1.002.你能帮助我吗?
如您所知,javascript的parseFloat功能仅在遇到无效字符时才起作用,例如
parseFloat("10.123") = 10.123
parseFloat("12=zzzz") = 12
parseFloat("z12") = NaN
Run Code Online (Sandbox Code Playgroud)
如果整个字符串不是有效的浮点数,是否有一种方法或parseFloat的实现会返回NaN ?
在我的代码中,我将接受多个值,例如:
8.7456
8.7
8
Run Code Online (Sandbox Code Playgroud)
我需要让它们显示为
8.74
8.7
8
Run Code Online (Sandbox Code Playgroud)
即显示最多两个小数位.
我明白这.toFixed(2)将帮助我获得第一个值,但是在第二个和第三个值上会有我不想要的尾随零.
如何产生我想要的结果?
parseFloat(1.51e-6);
// returns 0.00000151
parseFloat(1.23e-7);
// returns 1.23e-7
// required 0.000000123
Run Code Online (Sandbox Code Playgroud)
我正在对包含各种浮点数的表列进行排序,其中一些以科学计数法表示.
我正在使用jQuery tablesorter2.0插件,它使用'parseFloat'来表示以数字开头的单元格.问题是parseFloat返回表示为1.23e-7的非常小的数字作为字符串,而不是将其扩展为0.000000123.因此,tablesorter将列的内容排序为文本而不是数字.
Run Code Online (Sandbox Code Playgroud)**Column To Sort** 2.34 1.01 13.56 1.23e-7 **After Sort Now** 1.01 1.23e-7 13.56 2.34 **Expect** 1.23e-7 1.01 2.34 13.56
是否有一种有效的方法可以将非常小的科学记数表示为扩展的浮点数?
解:
tablesorter根据第一个tablesorters自动解析器确定如何对列进行排序,以便为该列中单元格的内容返回true.如果单元格包含1.23e-7而不是默认按文本排序,因为'digit'解析器不会将其解释为数字.
因此,要解决此问题,以下代码将科学记数法编号表示为tablesorter可以解释/解析为数字的字符串,从而确保对列进行数字排序.@bitplitter - 感谢toFixed()提示.
var s = "1.23e-7";
// Handle exponential numbers.
if (s.match(/^[-+]?[1-9]\.[0-9]+e[-]?[1-9][0-9]*$/)) {
s = (+s).toFixed(getPrecision(s));
}
//returns 0.000000123
// Get a nice decimal place precision for the scientific notation number.
// e.g. 1.23e-7 yields 7+2 places after the decimal point
// e.g. …Run Code Online (Sandbox Code Playgroud) javascript ×10
parsefloat ×10
base ×1
function ×1
hex ×1
math ×1
nan ×1
numbers ×1
parseint ×1