2

Javaで浮動小数点数を使用し、それらを印刷してMySQL浮動小数点列に保存しています。その結果、Java 印刷は次のように表示されます x=260.1201 y=260.12

x=y+0.0001 であるため、問題ありません。これらの値を MySQL の tow float 列に格納しようとすると、その中に読み取ることができる値は x=260.12 y=260.12 です。

なぜその違い?Java の float と MySQL の float は同じものではありませんか?

もう 1 つの質問: Java float で 0.0001 の精度で正しく動作すると期待できるより大きな値はどれですか?

4

2 に答える 2

2

私はそれが非常に古い議論スレッドであることを知っていますが、今日私は同じ問題を解決し、皆さんと共有したいと考えています.

データベース側では、列の 1 つがフロートであり、使用してフロート データを送信していました

call = (CallableStatement)this.getStatement();
call.setFloat(floatData)

しかし、いくつかの浮動小数点値を保存しようとすると、正しいデータがデータベースに保存されず、別の 10 進数値に変換された方法もあります。

解決:

次に、 floatData を double 値に変換して呼び出します

call.setDouble(doubledata)

データベースの列は float 型ですが。

現在、正常に動作しています。

于 2015-03-19T10:34:00.123 に答える