double n;
cin >> n;
double y = n - (int)n;
while (y){
y *= 10;
double dou = y;
int in = (int)y;
y = y - in;
cout << "y:" << dou << " (int)y:" << in << " y-(int)y:" << y << "\n\n";
}
Input:
1.11
Output:
y:1.1 (int)y:1 y-(int)y:0.1
y:1 (int)y:1 y-(int)y:9.76996e-015
y:9.76996e-014 (int)y:0 y-(int)y:9.76996e-014
y:9.76996e-013 (int)y:0 y-(int)y:9.76996e-013
y:9.76996e-012 (int)y:0 y-(int)y:9.76996e-012
y:9.76996e-011 (int)y:0 y-(int)y:9.76996e-011
y:9.76996e-010 (int)y:0 y-(int)y:9.76996e-010
y:9.76996e-009 (int)y:0 y-(int)y:9.76996e-009
y:9.76996e-008 (int)y:0 y-(int)y:9.76996e-008
y:9.76996e-007 (int)y:0 y-(int)y:9.76996e-007
y:9.76996e-006 (int)y:0 y-(int)y:9.76996e-006
y:9.76996e-005 (int)y:0 y-(int)y:9.76996e-005
y:0.000976996 (int)y:0 y-(int)y:0.000976996
y:0.00976996 (int)y:0 y-(int)y:0.00976996
y:0.0976996 (int)y:0 y-(int)y:0.0976996
y:0.976996 (int)y:0 y-(int)y:0.976996
y:9.76996 (int)y:9 y-(int)y:0.769963
y:7.69963 (int)y:7 y-(int)y:0.699626
y:6.99626 (int)y:6 y-(int)y:0.996262
y:9.96262 (int)y:9 y-(int)y:0.962617
y:9.62617 (int)y:9 y-(int)y:0.626167
y:6.26167 (int)y:6 y-(int)y:0.26167
y:2.6167 (int)y:2 y-(int)y:0.616701
y:6.16701 (int)y:6 y-(int)y:0.167014
y:1.67014 (int)y:1 y-(int)y:0.670138
y:6.70138 (int)y:6 y-(int)y:0.701378
y:7.01378 (int)y:7 y-(int)y:0.0137756
y:0.137756 (int)y:0 y-(int)y:0.137756
y:1.37756 (int)y:1 y-(int)y:0.377556
y:3.77556 (int)y:3 y-(int)y:0.775557
y:7.75557 (int)y:7 y-(int)y:0.755573
y:7.55573 (int)y:7 y-(int)y:0.555728
y:5.55728 (int)y:5 y-(int)y:0.55728
y:5.5728 (int)y:5 y-(int)y:0.572796
y:5.72796 (int)y:5 y-(int)y:0.727959
y:7.27959 (int)y:7 y-(int)y:0.279587
y:2.79587 (int)y:2 y-(int)y:0.795868
y:7.95868 (int)y:7 y-(int)y:0.958679
y:9.58679 (int)y:9 y-(int)y:0.586792
y:5.86792 (int)y:5 y-(int)y:0.86792
y:8.6792 (int)y:8 y-(int)y:0.679199
y:6.79199 (int)y:6 y-(int)y:0.791992
y:7.91992 (int)y:7 y-(int)y:0.919922
y:9.19922 (int)y:9 y-(int)y:0.199219
y:1.99219 (int)y:1 y-(int)y:0.992188
y:9.92188 (int)y:9 y-(int)y:0.921875
y:9.21875 (int)y:9 y-(int)y:0.21875
y:2.1875 (int)y:2 y-(int)y:0.1875
y:1.875 (int)y:1 y-(int)y:0.875
y:8.75 (int)y:8 y-(int)y:0.75
y:7.5 (int)y:7 y-(int)y:0.5
y:5 (int)y:5 y-(int)y:0
谁能给我解释一下 y-(int)y(1−1)为什么等于 9.76996e−15(0.00000000000000976996)。