Java 图形浮动和控制小数点
如果运行此程序,您将注意到显示摄氏度转换的表格看起来很时髦。我一直想让它停在第十位。如果有任何反馈,我将不胜感激。提前谢谢 输出:Java 图形浮动和控制小数点,java,Java,如果运行此程序,您将注意到显示摄氏度转换的表格看起来很时髦。我一直想让它停在第十位。如果有任何反馈,我将不胜感激。提前谢谢 输出: 渲染温度的代码应如下所示: String Fahrenheit = String.valueOf(tempF[index]); double tempC = (tempF[index] - 32) * (5/9.0); String formattedCelcius = String.format("%.1f", tempC); g.drawString(Fahre
渲染温度的代码应如下所示:
String Fahrenheit = String.valueOf(tempF[index]);
double tempC = (tempF[index] - 32) * (5/9.0);
String formattedCelcius = String.format("%.1f", tempC);
g.drawString(Fahrenheit, y, x);
g.drawString(formattedCelcius, y1, x1);
在代码中,您做到了:
String.format("%.1f", Celsius);
而不是:
String.format("%.1f", tempC);
我希望区别很明显
%f格式说明符需要一个类似tempC的双参数,但您传递的是字符串
这导致了java.util.IllegalFormatConversionException:f!=您可能没有看到的java.lang.String异常被抛出到Swing事件线程中,该线程中止了其余的绘制方法。感谢大家的反馈。我找到了解决办法。数学课上有一个函数轮,它完成了这个技巧。我把这个放进去,它解决了这个问题:
double tempC = (tempF[index] - 32) * (5/9.0);
double c = Math.round(tempC);
更改此选项后,我将获得正确的输出:
再次感谢大家的反馈
致以最良好的祝愿
DDKGM为什么要注释掉字符串FormattedCelcius=String.format%.1f,Celsius?当我把它放进去的时候,不知什么原因,它掩盖了一切。程序运行并编译,但它根本不会显示任何内容。请向我们显示您获得的输出和您期望的输出。我们不必运行您的代码来查看它。请使用以下命令重试:String formattedcelcius=String.format%.1f,tempC;-您不能将字符串传递给%f格式规范,您需要传递一个double。@DDKGM您没有传递tempC。您通过的是摄氏度,这是一个字符串。谢谢您的澄清。我完全明白你在说什么。我纠正了这个问题,现在它编译时没有出现错误,但仍然生成相同的输出。代码中似乎有什么东西绕过了format调用。我不知道是什么。你也改变了这行:g.drawStringformattedCelcius,y1,x1?您需要绘制格式化的摄氏度,而不是摄氏度
double tempC = (tempF[index] - 32) * (5/9.0);
double c = Math.round(tempC);