Javascript 奇怪的意外舍入

Javascript 奇怪的意外舍入,javascript,rounding,Javascript,Rounding,我有一个对象值: var myThingy = { value: 10, } 当我将复数整数(例如带有Math.PI)加/减到value时,它会四舍五入(参见代码片段)!为什么会这样?我可以做些什么来不获取值四舍五入 var myThingy={ 数值:10, } document.write(myThingy.value+“”); 神话的价值; document.write(myThingy.value+“”); myThingy.value-(45/360)*(2*(数学PI));

我有一个对象

var myThingy = {
   value: 10,
}
当我将复数整数(例如带有
Math.PI
)加/减到
value
时,它会四舍五入(参见代码片段)!为什么会这样?我可以做些什么来不获取
四舍五入

var myThingy={
数值:10,
}
document.write(myThingy.value+“”);
神话的价值;
document.write(myThingy.value+“”);
myThingy.value-(45/360)*(2*(数学PI));
文件。写入(myThingy.value)它没有被舍入(至少没有返回到整数)

您编写了一个表达式,读取
myThingy
值(尽管您实际上想要它的
属性),但您没有对该表达式的求值结果做任何处理

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

var myThingy={
数值:10,
}
document.write(myThingy.value+“”);
神话的价值;
document.write(myThingy.value+“”);
myThingy.value=myThingy.value-(45/360)*(2*(Math.PI));
文件。写入(myThingy.value)
此行中没有
=
。您没有以任何方式将结果重新分配给myThingy。这很好,因为你试图从一个对象中减去一个数字


因此,基本上:注意你在做什么,以及每个变量所包含的内容。在这方面,它有助于为变量指定有意义的名称。

“复杂”。。。“整数”<代码>数学.PI
。嗯,奇怪。我不知道可能会出什么问题……在这行
myThingy-(45/360)*(2*(Math.PI))a)您没有重新分配
神话。值
所以很明显
9
会再次被记录b)您使用的是一个需要数字的对象c)没有四舍五入,但正在进行标准浮点四舍五入?哦,不,它将Math.PI四舍五入到大约15位
myThingy
应该是
myThingy.value
@JakeTheSnake是的,但这不是你最初在问题中所写的,我从中复制粘贴了一行,以向你说明错误所在。当然,但从未尝试从对象中减去数字。现在这个答案和我的问题说的是不同的东西,这可能会让人困惑,但是什么呢。
myThingy - (45 / 360) * ( 2 * (Math.PI));