这是假设将转换后的数字作为整数返回。该部分有效,但不能转换正确的转换。
var input = prompt('Please enter your temp in fahrenheit');
function converter (){
var x = Math.round(input - 32 * 5/9);
console.log(x);
return x;
}
alert('The temp in celsius is: ' + converter());
答案 0 :(得分:2)
将华氏温度转换为Celcius的公式为T(°C)=(°F - 32)×5/9。您遇到了操作顺序问题。这应该有用。
{{1}}
答案 1 :(得分:2)
你错过了这个问题,这迫使operator precedence接管了计算。
var input = prompt('Please enter your temp in fahrenheit');
function converter() {
var x = Math.round((input - 32) * 5 / 9);
console.log(x);
return x;
}
alert('The temp in celsius is: ' + converter());
答案 2 :(得分:1)
试试这个:
(input - 32) * (5 / 9);
答案 3 :(得分:1)
由于运算符优先级而无法正确转换,JavaScript运算符优先级从最高(20)变为最低(0),乘法/除法的优先级为14,而Subtraction的优先级为13,因此括号(优先级为20) )需要标记应首先执行哪个表达式。
$(document).ready(function () {
$('#celsius').on('input', function (event) {
var celsius = $('#celsius').val();
var fahrenheit = celsiusToFahrenheit(celsius);
$('#fahrenheit').val(fahrenheit);
});
$('#fahrenheit').on('input', function (event) {
var fahrenheit = $('#fahrenheit').val();
var celsius = fahrenheitToCelsius(fahrenheit);
$('#celsius').val(celsius);
});
function celsiusToFahrenheit(celsius) {
if (celsius === undefined || celsius === null) {
return celsius;
}
var fahrenheit = celsius * 9/5 + 32;
return fahrenheit.toFixed(5);
}
function fahrenheitToCelsius(fahrenheit) {
if (fahrenheit === undefined || fahrenheit === null) {
return fahrenheit;
}
var celsius = (fahrenheit - 32) * 5/9;
return celsius.toFixed(5);
}
});
.form-group {
float: left;
margin: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="form-group">
<label>Celsius</label>
<input type="text" id="celsius"/>
</div>
<div class="form-group">
<label>Fahrenheit</label>
<input type="text" id="fahrenheit"/>
</div>