3

小数を使用して(私はそれのバリエーションを試しました)0.5は常に5に変換されます。

1.5などを保存できます。問題ありません...「0.5」の数値を正しく保存するためにデータ型を設定する方法に興味があります。

ありがとう

編集:

現在のデータ型はDecimal(3,1)です。私もフロートを試しました。

Javaを介してのみ番号に制限されているフォームテキストボックスから$_POSTを介して番号を取得するだけです。ブラウザが単に5として送信しているのではないかとは思いもしませんでした。

編集2:0.5が正常に送信されたことをエコーで確認しました。データベースに入ると、5になります。

4

2 に答える 2

1

You know, I might get voted down for this, but I've always had success (as a sort of hack) in storing values like this as a VARCHAR and then using format() function in PHP when I need to make calculations. MySQL still seems to parse it well enough for SQL functions as well. Just my 2 cents :)

于 2012-08-03T14:31:41.397 に答える
1

I used a decimal value in a database with various inputs:

I have tried to recreate you issue, but I get the following:

mysql> create table test(myDec decimal(2,2));
Query OK, 0 rows affected (0.02 sec)

mysql> insert into test values(0.5);
Query OK, 1 row affected (0.01 sec)
mysql> insert into test values(.5);
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+-------+
| myDec |
+-------+
|  0.50 |
|  0.50 |
+-------+
2 rows in set (0.00 sec)

Given your edit, I think that you might be getting values from international visitors, where the decimal point might be formatted using a comma instead of a dot?

mysql> insert into test values('0,5');
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> select * from test;
+-------+
| myDec |
+-------+
|  0.50 |
|  0.50 |
|  0.00 |
+-------+
3 rows in set (0.00 sec)
于 2012-08-03T14:33:19.883 に答える