ホームページ  >  記事  >  バックエンド開発  >  フィールドのタイプは 10,1 で、計算は 100.0+1.5=101.0 になります。なぜでしょうか。

フィールドのタイプは 10,1 で、計算は 100.0+1.5=101.0 になります。なぜでしょうか。

WBOY
WBOYオリジナル
2016-06-23 13:48:06920ブラウズ

$sql = "update ".$fdyu->table('users')." set yujia=yujia+".$yujia." where user_id=".$user_id;
$db->query($sql) ;

元の yujia フィールドの値が 100.0 で、$yujia=1.5 を送信すると、結果は yujia フィールドの値が 101.0 になります。 0.5少ないのはなぜですか?


ディスカッションに返信 (解決策)

create temporary table t (n decimal(10,1));insert into t values (100.0);update t set n=n+1.5;select * from t
n
101.5

理由がわかりました。変数が整数であることがわかりました
$yujia = isset($_REQUEST['yujia']) ? (trim($_REQUEST['yujia'])) : 0;

intval?プラスチック??小さいものを削除します。 。
代わりに floatval を使用してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。