【发布时间】:2014-12-23 21:46:06
【问题描述】:
我在 MySQL 表中有一个 varchar 列。但是,列中的数据代表一个浮点值。我想知道是否有一种简单的方法可以将字符串转换为浮点数而不会丢失数据。问题是有前导零使我的事情变得复杂。
样本数据:
"100"
"002"
"075"
"0300"
"0135"
需要转换为:
1.00
0.02
0.75
0.300
0.135
当我尝试通过乘以小数进行转换时,前导零被去除,002 变为 2.0 而不是 0.02。更复杂的是,有些字符串值是 3 个字符,有些是 4 个字符。
我正在使用 PHP 5.4。
感谢您的帮助。
【问题讨论】:
-
基本 PHP 整数:带前导零的数字被视为八进制:077 -> 63 (int) -> 0x3F (hex)。
075 * 2是octal 75 * decimal 2->decimal 61 * decimal 2-> 122 十进制 -
您应该在数据库本身中一劳永逸地解决这个问题;除以 100 或 1000 或 1000000 等,具体取决于长度,第一个字符似乎不是一个非常可持续的解决方案。
标签: php mysql string type-conversion