使用函数 decimal to return only decimal of input as double C++
Using function decimal to return only decimal of input as double C++
我在学习 C++ 的第 3 周,我很迷茫。我需要编写一个带有 decimal 函数的程序——它将 return 任何非负十进制数的小数部分作为输入发送给它。需要明确的是需要return一个double - 参数设置为double.
我们还没有学习 decimal 函数,也没有学习强制类型转换,尝试自学并不顺利。
想想数学。
十进制数的形式为 a.b,其中 a 是整数部分,b 是小数部分。
假设你的输入是 N (= 1.234) 然后提取 frac = .234 你只需要做的是
frac = N - floor(N);记住 floor(N) 是 1.000.
我认为这有助于实现代码。
一个例子:
#include <iostream>
#include <cmath>
int main() {
float input;
std::cin >> input;
std::cout << (input - std::floor(input));
return 0;
}
或
作为函数
#include <cmath>
double decimal(const double &N){
return (N - std::floor(N));
}
我不确定我是否完全理解你的问题。
您是否很难实现此功能?
如果是这样 - 考虑从中减去数字的整数部分,这样你将只保留小数部分。
类似于:(伪代码)
double a = 10.85
int b = int(a)
return a - b
检查以下示例。您可以尝试这样的操作,非常简单。
double num = 23.345;
int intpart = (int)num;
double decpart = num - intpart;
printf("Num = %f, intpart = %d, decpart = %f\n", num, intpart, decpart);
您可以使用字符串转换:
#include <algorithm>
#include <iostream>
#include <string>
int main() {
float input = 12.123456;
std::string ip = std::to_string(input);
ip.erase(ip.begin(), --std::find(ip.begin(), ip.end(), '.'));
ip.front() = '0';
std::cout << ip;
return 0;
}
另一种方法是简单地从数字本身减去底数...
#include <iostream>
#include <cmath>
int main() {
float input = 12.12;
std::cout << (input - std::floor(input));
return 0;
}
我在学习 C++ 的第 3 周,我很迷茫。我需要编写一个带有 decimal 函数的程序——它将 return 任何非负十进制数的小数部分作为输入发送给它。需要明确的是需要return一个double - 参数设置为double.
我们还没有学习 decimal 函数,也没有学习强制类型转换,尝试自学并不顺利。
想想数学。
十进制数的形式为 a.b,其中 a 是整数部分,b 是小数部分。
假设你的输入是 N (= 1.234) 然后提取 frac = .234 你只需要做的是
frac = N - floor(N);记住 floor(N) 是 1.000.
我认为这有助于实现代码。
一个例子:
#include <iostream>
#include <cmath>
int main() {
float input;
std::cin >> input;
std::cout << (input - std::floor(input));
return 0;
}
或 作为函数
#include <cmath>
double decimal(const double &N){
return (N - std::floor(N));
}
我不确定我是否完全理解你的问题。 您是否很难实现此功能? 如果是这样 - 考虑从中减去数字的整数部分,这样你将只保留小数部分。
类似于:(伪代码)
double a = 10.85
int b = int(a)
return a - b
检查以下示例。您可以尝试这样的操作,非常简单。
double num = 23.345;
int intpart = (int)num;
double decpart = num - intpart;
printf("Num = %f, intpart = %d, decpart = %f\n", num, intpart, decpart);
您可以使用字符串转换:
#include <algorithm>
#include <iostream>
#include <string>
int main() {
float input = 12.123456;
std::string ip = std::to_string(input);
ip.erase(ip.begin(), --std::find(ip.begin(), ip.end(), '.'));
ip.front() = '0';
std::cout << ip;
return 0;
}
另一种方法是简单地从数字本身减去底数...
#include <iostream>
#include <cmath>
int main() {
float input = 12.12;
std::cout << (input - std::floor(input));
return 0;
}