回答編集履歴

1

割り算を使わない方法に変更

2022/01/10 06:42

投稿

ppaul
ppaul

スコア24666

test CHANGED
@@ -1,6 +1,32 @@
1
- 英気表現を使って無理やり書き直す方法だと以下になります。
1
+ 正規表現を使って無理やり書き直す方法だと以下になります。
2
2
 
3
3
 
4
+
5
+ ```python
6
+
7
+ >>> import re
8
+
9
+ >>> num = 20
10
+
11
+ >>> i, f, e = re.search('(\d).(\d+)E([+-]\d+)', format(num, '13.6E')).groups()
12
+
13
+ >>> '0.' + i + f + 'E' + format(int(e)+1, '+03d')
14
+
15
+ '0.2000000E+02'
16
+
17
+ >>> num = 3.14159
18
+
19
+ >>> i, f, e = re.search('(\d).(\d+)E([+-]\d+)', format(num, '13.6E')).groups()
20
+
21
+ >>> '0.' + i + f + 'E' + format(int(e)+1, '+03d')
22
+
23
+ '0.3141590E+01'
24
+
25
+ ```
26
+
27
+
28
+
29
+ 以下でも書けますが、割り算を使うのはスマートではないので、上記のほうがよいでしょう。
4
30
 
5
31
  ```python
6
32