-1

文字列を解析してフロートし、それを SqlParameter に追加しようとしています。1234567890 を入力すると、データベースに 1234567936 として保存されました。また、デバッグで 1.234568E+9 に変換されていることがわかりました。データベースは float を受け入れるため、double に変換できません。

com.Parameters.Add(new SqlParameter("Awb", SqlDbType.Float)).Value = float.Parse(txtAwb.Text);

解決策: データベースで別のデータ型を使用する必要があるようです。浮動小数点値は、桁数の多い数値を保持できません。古いデータベースで作業しているので、別のものを検討します。

4

3 に答える 3

4

浮動小数点値の精度は制限されています...つまり、有効桁数が制限されています。

大きな値を正確に格納する必要がある場合は、データベースで別のフィールド タイプを使用する必要があります。お金の通貨、または小数でない大きな値の場合は整数。

基本的に、フロートは、必要な精度まで大きな数を保持できません。

于 2012-05-16T13:55:43.267 に答える
0

ここにフロートに関するすべてのC#のものがあります

float.Parse(value)やりたいことをやればいい

于 2012-05-16T13:52:36.603 に答える
0

残念ながら、 floatを使用する場合、7 桁を超える値を取得することはできません。他のデータ型の使用を検討してください。

于 2012-05-16T13:56:26.717 に答える