回答編集履歴

2 色々追加。

fuzzball

fuzzball score 16068

2017/02/14 11:14  投稿

`1.50000`という値の確認方法に問題があるのではないでしょうか?
例えば、
```swift
let value = 1.4999999
print(value)
//=> 1.4999999
print(String(format: "%f", value))
//=> 1.500000
print(FloorDtoD(number: value))
//=> 1.4
```
 
とか  
 
```swift  
let value = 1.499999999999999  
print(value)  
//=> 1.5  
print(FloorDtoD(number: value))  
//=> 1.4  
```  
 
とか。  
 
参考URL  
[FloatingPoint](https://developer.apple.com/reference/swift/floatingpoint) / API Reference  
[IEEE 754](https://ja.wikipedia.org/wiki/IEEE_754#32.E3.83.93.E3.83.83.E3.83.88.E5.8D.98.E7.B2.BE.E5.BA.A6) / Wikipedia  
 
1 例を修正。

fuzzball

fuzzball score 16068

2017/02/14 10:51  投稿

`1.50000`という値の確認方法に問題があるのではないでしょうか?
例えば、
```swift
let value = 1.499999999999999
let value = 1.4999999
print(value)
//=> 1.5
//=> 1.4999999
print(String(format: "%f", value))
//=> 1.500000
print(FloorDtoD(number: value))
//=> 1.4
```
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る