オーバーフロが生じた場合は、オーバーフローシングルトンのオーバフローステータスを見て、文字入力を受け付けないようにします。
オーバーフロのチェックは、各計算結果に対して行うだけです。エラー表示はオーバーフローオブジェクト側で実施します。
で、計算の結果は以下のような感じです。
最後E表示のあと8桁のオーバーフロー数値を示すことができました。
ということで、UIなしで電卓の処理の実装は少しづ完成に近づいてきています。
func push(_ s:String){
if flow.overFlow { return }
}// end NumberQueue.push
func pop() {
if flow.overFlow { return }
}// end NumberQueue.pop
func calc(_ char:Character){
if flow.overFlow { return }
}
オーバーフロのチェックは、各計算結果に対して行うだけです。エラー表示はオーバーフローオブジェクト側で実施します。
if var result = calQueue.push(nil,previousOperater){ // 演算子を投入し、演算結果を得る
// ----------------------------------
let ret = flow.checkOverFlow(result)
result = ret.retValString
// ----------------------------------
if let numberString = formattedNumberStringForPop(result){ //演算結果があれば整形して表示する
print (numberString)
で、計算の結果は以下のような感じです。
2
Operater5 *
Operater1 *=
4
Operater1 *=
16
Operater1 *=
256
Operater1 *=
65,536
Operater1 *=
4,294,967,296
Operater1 *=
E
18,446,744.0737
ということで、UIなしで電卓の処理の実装は少しづ完成に近づいてきています。
0 件のコメント:
コメントを投稿