添加varchar与小数PHP

时间:2012-01-24 08:58:36

标签: php floating-point type-conversion addition

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


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


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

为什么我不能添加它们?

2 个答案:

答案 0 :(得分:1)

根据您的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)

答案 1 :(得分:0)

在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})