添加带有小数 PHP 的 varchar


adding varchar with decimals php

  int    varchar
+======+==========+
| id   | amount   |
+======+==========+
| 1    | 1.40     |
| 2    | 2.40     |
| 3    | 3.40     |
+======+==========+

$res += $row['amount'];
// $res = 6

$res += (float)$row['amount'];
// $res = 6

为什么我不能添加它们?

根据你的var_dump结果string(8) "1,000.00" string(8) "2,391.45" string(8) "2,005.31",这是你的数据的问题。

(float)"2,391.45"会将字符串string("2,391.45")转换为float(2)

在 PHP 中,浮点数不能包含逗号:http://php.net/manual/en/language.types.float.php

LNUM          [0-9]+
DNUM          ([0-9]*['.]{LNUM}) | ({LNUM}['.][0-9]*)
EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM})