怪异无意的四舍五入

时间:2015-11-07 18:38:39

标签: javascript rounding

我有一个对象value

var myThingy = {
   value: 10,
}

当我向Math.PI添加/减去复数整数(例如value的某些内容)时,它会被舍入(请参阅代码段)!为什么是这样?如果没有value四舍五入,我该怎么办?

var myThingy = {
  value: 10, 
}
document.write(myThingy.value + "<p>"); 
myThingy.value--; 

document.write(myThingy.value + "<p>"); 
myThingy.value - (45 / 360) * ( 2 * (Math.PI)); 

document.write(myThingy.value);

2 个答案:

答案 0 :(得分:2)

它不会被舍入(至少不会回到整数)。

你已经写了一个读取 value myThingy的表达式(虽然你实际上想要它的value属性),但你不是&# 39;对评估该表达式的结果做任何事情。

在查看之前,您需要将结果分配回属性。

&#13;
&#13;
var myThingy = {
  value: 10, 
}
document.write(myThingy.value + "<p>"); 
myThingy.value--; 

document.write(myThingy.value + "<p>"); 
myThingy.value = myThingy.value - (45 / 360) * ( 2 * (Math.PI)); 

document.write(myThingy.value);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

myThingy - (45 / 360) * ( 2 * (Math.PI)); 

此行中没有=。您没有以任何方式将结果重新分配给myThingy。哪个好,因为你试图从一个对象中减去一个数字。

基本上:注意你在做什么,以及每个变量的含义。在这方面,它有助于为变量提供有意义的名称。