回答編集履歴
1
小数部の対応について検討。
test
CHANGED
@@ -8,9 +8,9 @@
|
|
8
8
|
|
9
9
|
```C
|
10
10
|
|
11
|
-
s_int = x.a + floor(x.b *
|
11
|
+
s_int = x.a + floor(x.b * q); // 小数部は切り捨てだからこれで良いと思う
|
12
12
|
|
13
|
-
t_int = y.a + floor(y.b *
|
13
|
+
t_int = y.a + floor(y.b * q);
|
14
14
|
|
15
15
|
```
|
16
16
|
|
@@ -20,9 +20,9 @@
|
|
20
20
|
|
21
21
|
```C
|
22
22
|
|
23
|
-
s_int = (int)(x.a + x.b *
|
23
|
+
s_int = (int)(x.a + x.b * q); // 小数部は切り捨てだからこれで良いと思う
|
24
24
|
|
25
|
-
t_int = (int)(y.a + y.b *
|
25
|
+
t_int = (int)(y.a + y.b * q);
|
26
26
|
|
27
27
|
```
|
28
28
|
|
@@ -37,3 +37,19 @@
|
|
37
37
|
現在の方法では、double で計算しても同じなので、もう一つしっくりこないです。
|
38
38
|
|
39
39
|
回答依頼がありましたので、一応。。。
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
[追記]
|
44
|
+
|
45
|
+
小数部の比較ですが、
|
46
|
+
|
47
|
+
```C
|
48
|
+
|
49
|
+
int x_dec = (int)(((x.b * q) - floor(x.b * q)) * q + 0.1);
|
50
|
+
|
51
|
+
```
|
52
|
+
|
53
|
+
とすれば、x の小数部に対応する整数が取得できると思うので、y についても同様に求め、比較すれば、良いと思うのですが、どうでしょう。 (時間が取れれば、確認予定)
|
54
|
+
|
55
|
+
なお、式内の +0.1 は、浮動小数の誤差対策です。
|