c/c++实现将任意10进制正小数m转换成n进制正小数,小数点后保留10位小数
时间: 2024-05-13 17:15:27 浏览: 332
C++实现十进制数转为其它进制数
以下是使用C++实现将任意10进制正小数m转换为n进制正小数,小数点后保留10位小数的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string floatToN(float m, int n) {
string result = "";
int integerPart = (int) m;
float decimalPart = m - integerPart;
while (integerPart > 0) {
int remainder = integerPart % n;
result = (char) (remainder < 10 ? remainder + '0' : remainder - 10 + 'A') + result;
integerPart /= n;
}
if (decimalPart > 0) {
result += ".";
for (int i = 0; i < 10; i++) {
decimalPart *= n;
int integerPart = (int) decimalPart;
decimalPart -= integerPart;
result += (char) (integerPart < 10 ? integerPart + '0' : integerPart - 10 + 'A');
}
}
return result;
}
int main() {
float m = 0.123456789;
int n = 16;
string result = floatToN(m, n);
cout << "The result is: " << result << endl;
return 0;
}
```
该代码首先将输入的10进制正小数m分为整数部分和小数部分,然后依次将整数部分转换为n进制数,小数部分转换为n进制小数,并保留10位小数。最后返回结果字符串。
阅读全文