(原創) 如何抓出小数部份第n位数字? (C/C++)
C/C++的Library似乎都没这个功能,我就自己写了一个小Function。
1
/*
2
(C) OOMusou 2006 http://oomusou.cnblogs.com
3
4
Filename : GetDigitFromDouble.cpp
5
Compiler : Visual C++ 8.0
6
Description : Demo how to get specified floating point number from double
7
Release : 11/26/2006
8
*/
9
10
#include <iostream>
11
12
int getDigitFromDouble(double, int);
13
14
int main() {
15
double f = 6.532;
16
int i = getDigitFromDouble(f,2);
17
std::cout << i << std::endl;
18
19
return 0;
20
}
21
22
int getDigitFromDouble(double d, int n) {
23
int t = 1;
24
for(int j = 0; j != n-1; ++j) {
25
t *= 10;
26
}
27
28
d = d * t;
29
int i = (int)d;
30
31
return (int)((double)(d-i)*10);
32
}
/* 2
(C) OOMusou 2006 http://oomusou.cnblogs.com3

4
Filename : GetDigitFromDouble.cpp5
Compiler : Visual C++ 8.06
Description : Demo how to get specified floating point number from double7
Release : 11/26/20068
*/9

10
#include <iostream>11

12
int getDigitFromDouble(double, int);13

14
int main() {15
double f = 6.532;16
int i = getDigitFromDouble(f,2);17
std::cout << i << std::endl;18

19
return 0;20
}21

22
int getDigitFromDouble(double d, int n) {23
int t = 1;24
for(int j = 0; j != n-1; ++j) {25
t *= 10;26
}27

28
d = d * t;29
int i = (int)d;30

31
return (int)((double)(d-i)*10);32
}


浙公网安备 33010602011771号