質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

1回答

3482閲覧

Unity C# Stiring型の計算式を計算処理してFloatで出力したい

URqK77hwuGvArSr

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2020/06/29 00:39

前提・実現したいこと

Unityで電卓を作成しています。

実現したいこととして
①ユーザーが入力した式が見える(Stringでテキストに表示しています)
②入力を間違えたときバックスペースで修正できる
③=を押すと結果が表示される。

①②に関しては実現できたのですが、計算で困っています。

②で守勢される可能性があるため=を押すときに文字列を処理したいのですが、

String型の計算式を動的に計算する方法を教えてください。

試したこと

以下のようなコードを書き1+1などの簡単な式は出力できました。

c#

1 List<string> _numberList; 2 string _numberField;//キーで入力されている数式 3 string _result;//計算結果 4 5public void calculation(){ 6 _result = _numberField; 7 string[] words = _result.Split('+'); 8 //1+1を+で分割、リストに入れる 9     foreach (var word in words) 10 { 11 _numberList.Add(word); 12 } 13  float _num = _numberList[0] + _numberList[1]; 14 Debug.Log(_num); 15}

=を押したときcalculation(){}を呼び出すのですが、

入力したString型のデータを.Split()を用いて演算子で分割し、リストに入れることはできました。

四則演算を行いたいのですが、加算だけであればリストの項目を取得しif文などですべての要素を加算することで可能ですが、ほかの割り算や掛け算、引き算がからんだ時難しくなりました。

String x ="(1+1-1)×2"

のような文字式を

float _num = (1+1-1)*2;

のように変換する方法を教えてください。

補足情報

Unity2019.3.9f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

文字列の計算式の計算結果を取得する
こちらが参考になりませんか?

また、「c# 文字列 計算式 変換」と検索すると、他にもいろいろ出てくるかと思います。

投稿2020/06/29 01:00

YAmaGNZ

総合スコア10489

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問