即使在 C 中使用“\n%.2f”后,也无法将浮点值舍入到最接近的第二个小数 [关闭]

Posted

技术标签:

【中文标题】即使在 C 中使用“\\n%.2f”后,也无法将浮点值舍入到最接近的第二个小数 [关闭]【英文标题】:Could Not Round the float value to the nearest second decimal even after using "\n%.2f" in C [closed]即使在 C 中使用“\n%.2f”后,也无法将浮点值舍入到最接近的第二个小数 [关闭] 【发布时间】:2016-02-13 18:34:50 【问题描述】:

输入以下代码后,开尔文温度输出为.2273.14995。因此 "\n%.2f" 中使用的 ".2" 已经出现在开尔文的输出值中,理想情况下应该是 273.14995。华氏转换完美地四舍五入到小数点后 2 位,但为什么不是开尔文转换?

#include <stdlib.h>
int main() 
  float x,y,z;
  printf("Enter The Temperature In Celsius:\n ");
  scanf("%f", &x);
  y=(x*9/5)+32;
  z=x+273.15;
  printf("\nThe Temperature in Fahrenheit And Kelvin Respectively Are: \n%.2f \n\n%.2f",y,z);

Here a screenshot of the running code

【问题讨论】:

欢迎来到 Stack Overflow!你的问题看起来像你想要的吗? (我希望不会。)请看How do I format my post using Markdown or html。另外,请不要将纯文本输出添加为图像;复制文本并将其粘贴到您的代码中。 将您在此处发布的printf 与链接图像中的进行比较。提示:始终复制/粘贴问题中的实际代码,不要不要重新输入。 9/5 是一个整数除法,产生 1。我怀疑 xyz 是华氏温度、摄氏温度和开尔文温度的好变量名称。 您使用的代码与您向我们展示的代码不同。这是一个不不。 -1 对不起,伙计们!我的 Bad % 应该在 .2 之前而不是之后。感谢您帮助我,我是新手,再次为犯下如此愚蠢的错误感到抱歉。 【参考方案1】:

请首先考虑 Jongware 的建议,这样会很棒。

现在对于实际代码,当您使用十进制数时,您可能希望在任何地方都使用它(例如,y=(x*9/5)+32 行,最好像这样y = (x * 9.0 / 5.0) + 32.0)。但是对于你的问题,问题是你第一次做对了%.2f,但第二次你错过了%,它应该在.2之前而不是之后。 ;)

希望这会有所帮助!

【讨论】:

不客气,但请注意您的主题已被“搁置”。

以上是关于即使在 C 中使用“\n%.2f”后,也无法将浮点值舍入到最接近的第二个小数 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

即使在配置后也无法登录到 phpMyAdmin

无法分离 ieee 754 浮点的不同部分

即使将其加载到内存中,也无法从 kernel.s 打印

即使安装后也无法运行任何纱线 cmd

即使设置了解决方案,也无法在更新 Swift 后使用 withMemoryRebound

c语言中将一个浮点型赋值给整型时,会不会四舍五入?