所以我有音量增大和减小按钮,每次增加音量时都会显示通知。
提高音量
function volumeUp() {
if (currentVolume < .9) {
currentVolume += .1;
sound.volume = currentVolume;
var $toastContent = $('<span>Volume '+ parseInt(currentVolume * 100)+ ' %' + '</span>' );
Materialize.toast($toastContent, 2000);
} else {
alert("Max Vol")
}
}
降低音量
function volumeDown() {
if (currentVolume > .1) {
currentVolume -= .1;
sound.volume = currentVolume;
var $toastContent = $('<span>Volume '+ parseInt(currentVolume * 100)+ ' %' + '</span>' );
Materialize.toast($toastContent, 2000);
} else {
alert("Min Vol")
}
}
我遇到的问题是,当我到达&lt; 80%它开始提醒89然后99而不是90和100.
当我达到10%并且减少它时,它显示为2%而不是0%。
有什么想法吗?
谢谢!
答案 0 :(得分:3)
正如阿米特提到的那样,关于浮点数学。
如果您打开控制台并声明变量并使用0.7 + 0.1
初始化它,您将看到它的实际值将为0.7999999999999999
对于您的媒体播放器,它不会有所作为,所以它只是显示此值。您有两种选择:
1)使用整数:
function volumeUp() {
if (currentVolume < 90) {
currentVolume = currentVolume + 10;
sound.volume = currentVolume / 100;
var $toastContent = $('<span>Volume '+ currentVolume+ ' %' + '</span>' );
Materialize.toast($toastContent, 2000);
} else {
alert("Max Vol")
}
}
2)每次添加后应用四舍五入:
currentVolume = Math.round((currentVolume + 0.1) * 10) / 10;
或
currentVolume = (parseFloat(currentVolume) + 0.1).toFixed(1); //string representation with one decimal
答案 1 :(得分:1)
首先,以下行没有意义。
currentVolume = currentVolume += .1;
currentVolume = currentVolume + .1;
或currentVolume += .1;
在.9
之后.1
之后,如果您想要1
而不是10
增加或减少,那么您应该
currentVolume += .01; // Instead of .1 in your volumeUp() function
和
currentVolume -= .01; // Instead of .1 in your volumeDown() function