-4

我需要使用 javascript 在文本框中增加一个分数。

目标是加 1 美分直到 0.99,然后是 1.00 和 1.01

这怎么能在javascript中完成?

这是行不通的。

var a;
a = document.getElementById('a1').value;
a = a+a;
alert(a);

警报返回

0.100.10

附加信息

var a;
a = parseFloat(document.getElementById('b13').value);
a = a+a;
alert(a);

返回

0.2

我宁愿看到 0.20

但最重要的是,如何一次将其增加 0.01 ?

解决了:

两个都

var a;
a = parseFloat(document.getElementById('a1').value);
a = a+0.01;
alert(a);
}

和 ...

document.getElementById('a1').value = +document.getElementById('a1').value + 0.01

工作正常。

4

4 回答 4

2

文本框将值作为字符串返回,因此对其进行解析

var a;
a = parseFloat(document.getElementById('a1').value);
a = (a+a).toFixed(2);
alert(a);

而且它不会将0.01 添加到 a .. 它会使a加倍所以使用这样的东西。

var a;
a = parseFloat(document.getElementById('a1').value);
a = (a + 0.01).toFixed(2);
alert(a);
于 2013-05-21T05:27:11.500 回答
2

a = a+a不添加 .01。a如果是一个数字,它会加倍a,但由于 javascript 将它视为一个字符串,它只是将它连接起来。

你想要a = +a+0.01

这将使 a 的值增加 0.01。最初+是为了确保 javascript 将a其视为数字而不是字符串。

这对您的警报很有效,但是您仍然需要重新设置该值:

document.getElementById('a1').value = a

或者,将所有内容放在一行中(使用toFixedHMR 的添加):

document.getElementById('a1').value = (+document.getElementById('a1').value + 0.01).toFixed(2)
于 2013-05-21T05:29:51.040 回答
1

首先像这样转换a浮点数,

a = parseFloat(document.getElementById('a1').value);

然后像这样添加并将a转换为float,

a = (a + a).toFixed(2)

并提醒答案。

于 2013-05-21T05:28:22.400 回答
1

a包含一个字符串,而不是一个数字。string+string返回两个字符串的连接——你没有告诉Javascript它是一个数字,所以它不会把它当作一个数字来对待。

您可以使用 parseFloat 和 parseInt 将字符串转换为浮点数(有小数位)或整数(不要)。http://www.javascripter.net/faq/convert2.htm

但是,请注意浮点数由于存储在有限的内存中而具有不准确性 - 它们将在一定数量的位置后四舍五入(而不是小数位 - 二进制位,例如 0.1 不能完全表示为浮点数数字,尽管只是以 10 为基数的一位小数!),如果您需要进行重要的财务计算,您应该注意这种不准确性(例如,您可能会使用定点数字系统)。阅读每个计算机科学家应该了解的关于浮点运算的知识以获取更多信息。

于 2013-05-21T05:28:32.880 回答