c - 如何找到浮点数的余数?
问题描述
long long convert(float n) {
long long result = 0;
float rem, i = 1, step = 1,c = 2.0;
while (n != 0) {
rem = fmod(n,c);
n /= 2;
result += rem * i;
i *= 10;
printf("Step %.0f: %f/2, Remainder = %.0f, Quotient = %f\n", step++, 2*n, rem, n );
}
return result;
}
int main() {
float n,a;
printf("Enter a number: ");
scanf("%f", &n);
printf("enter a number:");
scanf("%f",&a);
n = pow(n,a);
printf("%f in decimal = %lld in binary", n, convert(n));
return 0;
}
我想用二进制写分数指数十进制数,但我无法正确计算,我得到了荒谬的结果。
我想得到这样的结果,n = 5 a = 5/8 result = 101.101
2.828427 in decimal = -9223372036854775808 in binary
Process returned 0 (0x0) execution time : 4.454 s
Press any key to continue.`
解决方案
推荐阅读
- laravel - 如何获取列中具有相同值的数据的计数
- cordova - 如何在适用于 Android 和 iOS 的 Ionic4 上启用 webRTC 到 InAppBrowser 应用程序?
- dart - 如何在颤振中构建这种类型的搜索栏?
- datagridview - 双击 DataGridViewrow 以其他形式永久显示 datagrv 中的新数据
- javascript - 避免嵌套函数,谷歌云函数
- rpa - Blue Prism - 在 SAP SPY MODE 文本字段中写入错误
- algorithm - 快速排序分区的循环不变量
- javascript - React - 在构造函数中绑定 this 不起作用
- oracle - 无法在 oracle 数据库中插入 yyyy-mm-ddThh24:mi:ss.fffZ 日期格式
- mysql - 如果更新,则在同一张表上执行触发器