在Javascript中挣扎于固定小数点

在Javascript中挣扎于固定小数点,javascript,Javascript,我很难在页面的两个区域显示小数点 我有一个带有范围滑块的页面,一个显示在页面上的只读值,以及一个供用户手动输入价格的文本输入框。我希望发生以下事情(但目前没有): 当用户调整范围滑块时,只读值“New suggestion”始终返回一个小数点后2位的值。除了值以0(零)结尾外,它在此时执行此操作,但我希望它始终包含零 当用户调整范围滑块时,文本输入框值“Adjust here”(调整此处)始终返回一个小数位为2的值。现在它返回小数点前的任何内容,因此如果用户将范围滑块调整为10.41,那么文本

我很难在页面的两个区域显示小数点

我有一个带有范围滑块的页面,一个显示在页面上的只读值,以及一个供用户手动输入价格的文本输入框。我希望发生以下事情(但目前没有):

  • 当用户调整范围滑块时,只读值“New suggestion”始终返回一个小数点后2位的值。除了值以0(零)结尾外,它在此时执行此操作,但我希望它始终包含零
  • 当用户调整范围滑块时,文本输入框值“Adjust here”(调整此处)始终返回一个小数位为2的值。现在它返回小数点前的任何内容,因此如果用户将范围滑块调整为10.41,那么文本输入框将只显示10,但我希望它显示完整的10.41
我在这个网站和codepen上找到了很多不同的想法,试图让它发挥作用,但不管我怎么做都不起作用,我有点卡住了!值得注意的是,我对JavaScript非常陌生,只是通过从这个网站拼凑出其他答案才做到这一点

以下是目前的代码:

HTML:

<p>Suggested: 13.53</p>

<label for="monday">New suggestion: <span id="monday"></span></label>
<p>
<input type="range" min="0.50" max="27.05" value="13.52" id="range" name="monday" step="0.01" oninput="changeInputValue(this.value)" />
<p>
Adjust here: <input type="number" id="number" required min="0.05" max="27.05" value="13.53" onkeyup="changeRangeValue(this.value)"/>  
<span id="message"></span>
<br />
建议:13.53

新建议: 在此调整:
JavaScript:

var rpp = 13.53;
var t1 = rpp/100*75;
var t2 = rpp/100*133;
var t3 = rpp/100*170;
var msg;
function showValue1(newValue) { 
    document.getElementById("monday").innerHTML= newValue;
}

function changeRangeValue(val){
    document.getElementById("range").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
    showValue1(val);
    if (val < t1) {
      msg = "Message 1";
    } else if (val >= t1 && val <= t2) {
      msg = "Message 2";
    } else if (val >= t2 && val <= t3) {
      msg = "Message 3";
    } else {
      msg = "Message 4";
    }
    document.getElementById("message").innerHTML = msg;
}

function changeInputValue(val){
    document.getElementById("number").value = isNaN(parseInt(val, 10)) ? 0 : parseInt(val, 10);
    showValue1(val);
    if (val < t1) {
      msg = "Message 1";
    } else if (val >= t1 && val <= t2) {
      msg = "Message 2";
    } else if (val >= t2 && val <= t3) {
      msg = "Message 3";
    } else {
      msg = "Message 4";
    }
    document.getElementById("message").innerHTML = msg;
}
var-rpp=13.53;
var t1=rpp/100*75;
变量t2=rpp/100*133;
变量t3=rpp/100*170;
var-msg;
函数showValue1(newValue){
document.getElementById(“星期一”).innerHTML=newValue;
}
函数changeRangeValue(val){
document.getElementById(“range”).value=isNaN(parseInt(val,10))?0:parseInt(val,10);
showValue1(val);
if(val}否则,如果(val>=t1&&val=t2&&val=t1&&val=t2&&val将数字转换为
float
,而不是
int
。只有浮点数有十进制表示法,intiger数字没有十进制表示法。将
parseInt
更改为
parseFloat
将在此处执行此操作。检查更新的代码段

var-rpp=13.53;
var t1=rpp/100*75;
变量t2=rpp/100*133;
变量t3=rpp/100*170;
var-msg;
函数showValue1(newValue){
document.getElementById(“星期一”).innerHTML=newValue;
}
函数changeRangeValue(val){
document.getElementById(“range”).value=isNaN(parseFloat(val,10))?0:parseFloat(val,10);
showValue1(val);
if(val}否则,如果(val>=t1&&val=t2&&val=t1&&val=t2&&val将
parseInt
s更改为
parseFloat
s,并在显示值时使用
.toFixed(2)
。不确定这是否有帮助,但您查看过吗?它将为您提供一个带有明确指定小数位数的数字的字符串表示形式。