c - 如何在给定整数和小数位的情况下创建 float ?

标签 c floating-point

如何在给定整数和小数位的情况下生成 float ?

例如:

int decimal = 1000;
int decimal_position = 3;
float value = 1.000;

我已经通过使用权力完成了这个,但是效率不高

decimal/pow(10, decimal_position)

最佳答案

你可以用一些整数乘法和一个浮点除法来做到这一点:

int decimal = 1000;
int decimal_position = 3;

int offset = 1, i;
for (i=0; i<decimal_position; i++) {
    offset *= 10;
}

float value = (float)decimal / offset;

请注意,假设 decimal_position 是非负的并且 10decimal_position 适合 int

关于c - 如何在给定整数和小数位的情况下创建 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48889655/

相关文章:

c - 强制宏为无符号类型

c - 尝试运行时 C 中的段错误

python - 为什么 Python 在四舍五入时不包括我在小数点后指定的位数?

c - execl 中 C 程序的负参数被检测为选项

c - 通过 header 嵌入无法优化的字符串

c - 确定主线程 pthread_create 中的参数在 C 中是否为 NULL

c - 如何让小数点的值只显示在数字中?

c++ - 为什么我的 libmpg123 构建不支持 float ?我如何启用它?

c - 如何删除 C 中的以下 lint 警告?

java - float 与双