0

Oracle9iとNHibernate3.1.0.4およびFluentNhibernate1.2.0.712を使用しています

NHibernateは次のように構成されています...

<property name="dialect">NHibernate.Dialect.Oracle9iDialect</property>
      <property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
      <property name="connection.connection_string">Data Source=ORA9TEST;User ID=NOPE;Password=NOPE;</property>
      <property name="query.substitutions">true=1;false=0</property>
      <property name="show_sql">true</property>

この挿入ステートマネットを生成します

2012-08-10 16:33:36,380 [DEBUG] 15  NHibernate.SQL                      - 

INSERT INTO FACT_Data (STime, subg_number, subg_index, measurement, Rj, InvalidSpec, data_uid, WrittenState, dept_id, specs_id, data_id) VALUES (:p0, :p1, :p2, :p3, :p4, :p5, :p6, :p7, :p8, :p9, :p10);:p0 = 2/7/2012 12:49:57 AM [Type: DateTime (0)], :p1 = 103 [Type: Int32 (0)], :p2 = 0 [Type: Int32 (0)], :p3 = 30.346 [Type: Single (0)], :p4 = 0 [Type: Single (0)], :p5 = False [Type: Boolean (0)], :p6 = 0 [Type: Int32 (0)], :p7 = 0 [Type: Int32 (0)], :p8 = 2 [Type: Int32 (0)], :p9 = 45423 [Type: Int32 (0)], :p10 = 1178436 [Type: Int32 (0)]

列FACT_Data.MeasurementはタイプNUMBER(*、6)です

その行を読み戻すと、測定値が30.346ではなく、30.346001になります。0.000001を追加せずにSingle値を正しく保存するにはどうすればよいですか?

どうぞよろしくお願いします

4

1 に答える 1

1

この種の精度が必要な場合は、SingleではなくDecimalを使用する必要があります。

浮動小数点型の詳細については、10進数と2進数を比較してください。-どちらをいつ使用すればよいですか?

于 2012-08-11T09:50:08.660 に答える