c - 为什么 float 在 C 中会四舍五入,但在 JavaScript 或 Python 中却不会?

标签 c

首先,我知道IEEE754标准下的 float 对于十进制数来说是不准确的,我在JavaScript和Python中尝试了0.3 - 0.2,他们得到了相同的结果0.09999999998,但是当我在 C: 中尝试以下代码时,我得到了 0.1:

float a = 0.3, b = 0.2, c = b - a;
printf("%f", c);

printf 函数是否对值进行四舍五入?如果我想在C中打印不准确的十进制数字,我该怎么办?

最佳答案

你可以使用这个:

printf("%0.3f", c)

关于c - 为什么 float 在 C 中会四舍五入,但在 JavaScript 或 Python 中却不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43048529/

相关文章:

c - 如何捕获 sizeof(#define) 形式的错误

我可以在 C 中将 char* 传递给 const char* 吗?

c++ - 为什么 printf ("%f",0);给出未定义的行为?

c - 通用 SQLite 结果函数? (C)

c - 按名称或年份对飓风进行排序的 C 程序

c - 如何将 C#defines 包含在 .icf 链接器文件中?

r - 错误 : package or namespace load failed for ‘data.table’ in library. dynam(lib, package, package.lib): 找不到共享对象 ‘datatable.so’

Java 比 C 快

c - 如何组织eeprom中的数据

c - Win32 调度程序并将标准输出重定向到文件缓冲区问题?