将Double转换为float以用于Android画布

3

我正在尝试将Double类型转换为float类型。我有以下代码:

Double doubleValue = new Double( result[0].X() );
canvas.drawCircle( doubleValue.floatValue(), doubleValue.floatValue(), ... );

result是一个Point数组。由于某些原因,result [0] .X()中的值等于128.0,但是当我执行floatValue()时,我得到的是-100.0。

从基本类型Double转换为float的正确方法是什么?


3
如果 result[0].X 确实等于 128.0,那么 doubleValue.floatValue() 也将等于 128.0。因此,很可能 result[0].X 不是你所认为的值。 - assylias
1
将doubleValue或result打印到屏幕上,以便确认它是什么。 - Deepend
你为什么不直接这样写呢:"float v = (float)result[0].X;"? - Edward Falk
我也遇到了类似的问题...它要求将值如1623197.960938,-1663247.460938转换为浮点数,但在转换后可能不同,如何在绘制时保留这些值...有什么建议吗? - CoDe
1个回答

0

实际上,浮点数值是正确的(通过调试已验证)。但是drawCircle不能在指定位置绘制它...这是一个完全不同的问题。谢谢大家。


Double不是基本数据类型,而"double"是。您有使用Double的理由吗?话虽如此,您预期位置的圆圈(drawCircle正常工作)与您的预期位置不同是另一回事。floatValue() 也是完全可靠的。这些东西在Java中已经存在多年并经过了彻底测试/调试。 - Simon
我使用Double的唯一原因是因为我创建了一个模板化的Point类。 - TurnsCoffeeIntoScripts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接