0

Delphiフォームにstringgridがあり、あるセルの値を別の列の別のセルの値で除算しようとしています。

しかし、問題は、stringgrid セルにさまざまな種類の数値が入力されているため、ConvertErrors が発生することです。たとえば、セル内の数値は、0.37、34、0.0013、0.00、0.35、30.65、45.9108、0.0307、6854.93 のようになります。

言い換えれば、それらのセルで実数、浮動小数点数、整数、またはその他の種類になるかどうかはわかりません。

私はインターネットでどこでも見ましたが、運がありません。どなたでもアイデアを。ところで、私は Delphi の専門家ではありません。ありがとう。

4

3 に答える 3

3

TryStrToFloat, TryStrToInt, TryStrToInt64SysUtilsには、この目的のためになどの多くの機能があります。これらの関数は、変換された値を返すための参照パラメーター(varパラメーター)を受け入れ、変換が成功した場合、関数自体はtrueを返します。

文字列に有効な数値があることが確実な場合は、使用する関数を決定する前に、入力文字列に小数点があるかどうかを確認できます。

于 2012-08-30T23:11:03.413 に答える
3

各文字列について、最初にStrToFloatfunction inを使用して float 値に変換しSysUtils.pasます。これにより、任意の数値型を処理できるようになります (複素数のような異常なものを除きます)。上記のリストにはいくつかのゼロ値があるため、例外がスローされる可能性があるため、ゼロ除算条件も確認する必要があります。

于 2012-08-30T10:13:35.643 に答える
2

すべての数値を float として扱います。を使用StrToFloatし、数値を除算してから、結果を で文字列に変換しますFloatToStr。結果が整数の場合、小数点は生成されません。

于 2012-08-30T10:12:58.637 に答える