Java android画布从双精度转换为浮点型

Java android画布从双精度转换为浮点型,java,android,Java,Android,我正在尝试将Double类型转换为float类型。我有这个: Double doubleValue = new Double( result[0].X() ); canvas.drawCircle( doubleValue.floatValue(), doubleValue.floatValue(), ... ); 结果是一个点数组。由于某种原因,结果[0].X()中的值等于128.0,但当我执行floatValue()时,得到的却是-100.0 将原语类型Double转换为float的正确方

我正在尝试将Double类型转换为float类型。我有这个:

Double doubleValue = new Double( result[0].X() );
canvas.drawCircle( doubleValue.floatValue(), doubleValue.floatValue(), ... );
结果是一个点数组。由于某种原因,结果[0].X()中的值等于128.0,但当我执行floatValue()时,得到的却是-100.0


将原语类型Double转换为float的正确方法是什么?

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

如果
结果[0].X
真的等于
128.0
,那么
doubleValue.floatValue()
也将等于
128.0
。所以很可能,
result[0].X
不是你想象的那样。将doubleValue或result放在屏幕上,这样你就可以确认它是什么了。你不只是在做“float v=(float)result[0].X;”?我也面临类似的问题……它要求在float中转换像1623197.960938,-1663247.460938这样的值,转换后哪些不一样,如何在绘图时保留值…有什么建议吗?Double不是原始数据类型。“双倍”是一个词。你有理由使用Double吗?也就是说,你的圆圈(drawCircle工作得很好)没有达到你的预期是另一回事。floatValue()也是完全可靠的。这些东西已经在Java中使用了多年,并且经过了彻底的测试/调试。我使用Double的唯一原因是因为我创建了一个模板化的Point类。