- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<script language="JavaScript">
<!--
function calculate() {
var x= document.Form.x.value
var y = document.Form.y.value
if(x> 0 && y> 0){
var final = x/(y/100*y/100)
document.Form.answer.value = final
if(final < a){
document.Form.meaning.value = "A"
}
if(final > a && final < b){
document.Form.meaning.value = "B"
}
if(final > b && final < c){
document.Form.meaning.value = "C"
}
if(final > d){
document.Form.meaning.value = "D"
}
}
else{
alert("Please Fill form in correctly")
}
}
//-->
</script>
<div class=form2>
<form name="Form">
x: <input type="text" name="x" size="10"><br />
y: <input type="text" name="y" size="10"><br />
<input type="button" value="Calculate" onClick="calculate()"><br />
Answer: <input type="text" name="answer" size="10"><br />
This Means: <input type="text" name="meaning" size="25"><br />
<input type="reset" value="Reset" />
</form>
</div>
我使用上面的方法根据人们的输入 X 和 Y 进行计算...
我得到了想要的答案,但是给出了一长串小数位。
我正在寻找一种方法,将每个答案四舍五入到最多 2 位小数。
任何帮助将不胜感激:-)
最佳答案
Math.ceil()
将向上舍入,Math.floor()
将向下舍入到最接近的整数。
您需要将答案增加 100 倍以进行四舍五入,然后将其除以 100 以返回到小数。
此外,您的代码中有很多内容不遵循现代的最佳实践和标准,并且您的 if
逻辑也存在一些问题。
有关详细信息,请参阅内嵌评论:
window.addEventListener("DOMContentLoaded", function(){
// Always get references to the elelements themselves, not property values.
// That way, if you decide you need to access another property somewhere else
// you don't have to re-scan the DOM for the same element. Also, access elements
// using modern standards.
var x= document.querySelector("input[name='x']");
var y= document.querySelector("input[name='y']");
var ans= document.getElementById("answer");
var m = document.getElementById("meaning");
var btn = document.getElementById("calc");
// Set up button click event handler here, in the JavaScript, not in the HTML
btn.addEventListener("click", calculate);
function calculate() {
// Next, always trim off any possible leading or trailing spaces from user input
var xVal = x.value.trim();
var yVal = y.value.trim();
if(xVal > 0 && yVal > 0){
var final = xVal/(yVal/100*yVal/100);
console.log("Answer = " + final);
// First, multiply answer by 100
final = final * 100;
console.log("Answer times 100 = " + final);
// Next, round answer up to nearest whole number
final = Math.ceil(final);
console.log("Answer times 100, rounded up to nearest whole number = " + final);
// Now, divide by 100 to go back to decimals
final = final / 100;
console.log("Answer divided back by 100 = " + final);
ans.textContent = final;
// These should be else if, not one if after another since only
// one of the conditions will be true.
if(final < a){
m.textContent = "A"
} else if(final > a && final < b){
m.textContent = "B"
} else if(final > b && final < c){
m.textContent = "C"
} else if(final > d){
m.textContent = "D"
}
} else{
alert("Please Fill form in correctly")
}
}
});
.left {
float:left;
width:100px;
}
.results {
margin-top:1em;
}
.after {
clear:both;
margin-top:2em;
}
<div class=form2>
<form name="Form">
<!-- The text that accompanies the fields should be <label> elements
for better accessibility and for easier styling. -->
<label for="x" class="left">x: </label><input type="text" name="x" id="x" size="10"><br>
<label for="y" class="left">y: </label><input type="text" name="y" id="y" size="10">
<!-- Don't use inline HTML event handling attributes.
Do you JavaScript separately. -->
<div><input type="button" value="Calculate" id="calc"></div>
<!-- Don't use form fields for displaying data. -->
<div class="results">
<span class="left">Answer: </span><span id="answer"></span><br>
<span class="left">This Means: </span><span id="meaning"></span>
</div>
<div class="after">
<input type="reset" value="Reset">
</div>
</form>
</div>
关于javascript - 将答案四舍五入到小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45267223/
我有这个“科学应用程序”,其中 Single 值在显示在 UI 中之前应该四舍五入。根据this MSDN article ,由于“精度损失”,Math.Round(Double, Int32) 方法
这个问题类似于Chrome 37 calc rounding 但实际问题有点复杂,提供的解决方案不适用于这种情况: #outerDiv, #leftDiv, #middleDiv, #rightDiv
假设有一堆从 pnorm() 返回的数据,这样您就有了 .0003ish 和 .9999ish 之间的数字。 numbers <- round(rnorm(n = 10000, mean =
我想有效地将unsigneda整数除以2的任意幂,然后取整。所以我在数学上想要的是ceiling(p/q)0。在C语言中,不利用q受限域的Strawman实现可能类似于以下function1: /
我正在尝试获取 #value_box 的值以显示 100.5 但它一直在向上舍入。有谁知道我可以做些什么来让它显示小数位? jsfiddle //returns 101 $("#value_box
我有一段 JavaScript 代码 shipingcostnumber * parseInt(tax) / 100 + shipingcostnumber 返回数字为6655.866558,因此我将
我有一个关于 PostgreSQL 9.2 中 float 的新手问题。 是否有直接舍入 float 的函数,即不必先将数字转换为数字类型? 另外,我想知道是否有一个函数可以按任意度量单位舍入,例如最
这个问题已经有答案了: Rounding to nearest 100 (7 个回答) 已关闭10 年前。 我正在尝试将数字四舍五入到 100。 示例: 1340 should become 1400
我试图找出使用整数存储在列表中的其他两个数字之间的任何n在整数列表中找到最接近的值ROUNDED DOWN的最佳方法。在这种情况下,所有整数都将始终是无符号的,以防万一。 假设如下: 列表始终从0开始
我想将一个 BigDecimal 四舍五入到小数点后两位,但是当使用 round 方法时,它似乎没有双舍入: BigDecimal.new('43382.0249').round(2).to_s('F
我正在使用格式如下的财务数据进行计算: . 基本上,在我的程序中我遇到了一个浮点错误。例如,如果我有: 11.09 - (11.09 * 0.005) = 11.03455 我希望能够使用 11.03
有整型变量,电压单位为毫伏。 signed int voltage_mv = 134; //134mV 我有 2 段显示,我想显示百分之一伏特。 如何在一次操作中将毫伏转换为百分之一伏?没有 IF 语
这是我将数字四舍五入到两位小数的函数,但是当四舍五入的数字为 1.50 时,它似乎忽略尾随零并只返回 1.5 public static double roundOff(double number)
您好,我在将数字四舍五入到 -0 而不是 0 时遇到了问题 代码: 输出:-0 预期输出:0 我一直在寻找任何解决方案,但没有找到。 请解释并帮助我为什么它四舍五入为 -0 而不是 0?谢谢 最佳答
我正在使用 Java 的 Random 生成随机数:1.0、1.1 - 10 Random random = new Random(); return (double) ((random.nextIn
基本上,我有一个数字: 我基本上想做一些数学运算来创建这个数字 80。 如果数字是 62.7777777778,则数字将为 60。 我希望数字像这样四舍五入: 20, 40, 60, 80, 100
我希望显示来自 NSDate 对象的月数。 //Make Date Six Months In The Future NSCalendar *calendar = [[NSCalendar alloc
下面是一些小代码来说明我所看到的 float floater = 59.999f; DecimalFormat df = new DecimalFormat("00.0"); System.out.p
我现在开始使用 android 和 java,但遇到了问题。 I have a result x = 206.0548. And y = 206, both of type double How do
我有一个 ruby 散列数组,其中包含两个键,'tier' 和 'price'。对于给定的价格,我想退回等级。 这对于精确匹配来说已经足够简单了,但是我如何通过将我的输入值四舍五入到数组中的下一个
我是一名优秀的程序员,十分优秀!