Java 丑陋的舍入错误?
使用 series.add(180, 1);
生成一个完全有效的图表,如下所示(底部的小红点带有一些 PolarItemRenderer Mod!)
替代文本 http://www.imagechicken.com/uploads/1269795283096077100.png
但使用 series.add(3000/(6000/ 360), 1);
产生这个野兽:
替代文本 http://www. imagechicken.com/uploads/1269795508054503400.png
我认为这是因为某个地方 6000/360 = 16.6... 正在四舍五入?我怎样才能阻止这种情况发生?谢谢 :)
Using series.add(180, 1);
produces a perfectly valid chart like this (little red dot at the bottom with some PolarItemRenderer Mods!)
alt text http://www.imagechicken.com/uploads/1269795283096077100.png
but using series.add(3000/(6000/360), 1);
produces this beast:
alt text http://www.imagechicken.com/uploads/1269795508054503400.png
I assume it's because somewhere, 6000/360 = 16.6... is getting rounded? How can I stop this happening? Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在使用整数除法。 3000/(6000/360) = 3000 / 16 = 187。
我不知道你想要实现什么,但如果你不想进行整数除法,请使用双精度数而不是整数。
You are using integer division. 3000/(6000/360) = 3000 / 16 = 187.
I don't know what you are trying to achieve, but use doubles instead of integers if you don't want the integer division.