teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

NSDecimalNumber

2018/03/29 08:20

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -5,4 +5,16 @@
5
5
  let value = 12345e+3
6
6
  print(value, type(of: value))
7
7
  //=> 12345000.0 Double
8
+ ```
9
+
10
+ 【追記】
11
+
12
+ 大きな値を正しく計算/表示したいのであれば、NSDecimalNumberを使いましょう。
13
+
14
+ ```swift
15
+ var value1 = NSDecimalNumber(string: "66666666666666666")
16
+ let value2 = NSDecimalNumber(string: "999999999999999999")
17
+ value1 = value1.adding(value2)
18
+ print(value1.stringValue)
19
+ //=> 1066666666666666665
8
20
  ```

1

sample code

2018/03/29 08:20

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,2 +1,8 @@
1
1
  `e+`というのは指数表記です。
2
- 数値として扱われますので、そのまま計算に使っても大丈夫です。
2
+ 数値として扱われますので、そのまま計算に使っても大丈夫です。
3
+
4
+ ```swift
5
+ let value = 12345e+3
6
+ print(value, type(of: value))
7
+ //=> 12345000.0 Double
8
+ ```