条件分岐が正しくされません

スプレッドシートからDataTable型で格納した数値(%形式)を条件分岐で100%以上で判定したいです。繰り返し(各行)で行っています。
条件にはCType(row(0),System.string)>"100%"としています。
エラーは起きませんが、100%以上でないものを100%だと判断したりします。条件がstring以外もInt32,doubleで試していますがエラーになります。
何がいけないのでしょうか?ちなみに、セルは正しい位置を繰り返しで読んでいます。

こんにちは

String型の大小比較は一文字づつの文字コードの比較になりますので、特定の条件下(桁がそろっている等)を除くと、あまり使わない方が良いかと思います。

DataTableにどのような形で格納されているかにも依存しますが、仮に100%の形で格納されている
ようでしたら、以下の式で比較するのが良いと思います。

Int32.Parse(row(0).ToString.Replace("%",""))>100

もしDatatable内の値が数値(例えば元の値が100%なら1)それにあわせた比較が必要です。
まずはこちらを確認した方が良いかもしれません。適当な箇所でブレイクポイントを設定して
デバッグ実行すると、ブレイクポイントで一時停止しますので、ローカルパネルで内容を
確認できます。

ありがとうございます。
無事できました。

確認したら100%ではなく、100.0%のような形でしたのでInt32は変更しました。

2021年1月15日(金) 14:49 Yoichi via UiPath Community Forum <uipath@discoursemail.com>:

1 Like