Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为浮点PHP_Php_Mysql_String_Type Conversion - Fatal编程技术网

将字符串转换为浮点PHP

将字符串转换为浮点PHP,php,mysql,string,type-conversion,Php,Mysql,String,Type Conversion,我在MySQL表中有一列是varchar。但是,列中的数据代表浮点值。我想知道是否有一种简单的方法可以在不丢失数据的情况下将字符串转换为浮点。问题是,对我来说,前导零使事情变得复杂 样本数据: "100" "002" "075" "0300" "0135" 需要转换为: 1.00 0.02 0.75 0.300 0.135 当我试图通过乘以一个小数进行转换时,前导零被去掉,002变成2.0,而不是0.02。更复杂的是,有些字符串值是3个字符,有些是4个字符 我使用的是PHP5.4 谢谢你的

我在MySQL表中有一列是varchar。但是,列中的数据代表浮点值。我想知道是否有一种简单的方法可以在不丢失数据的情况下将字符串转换为浮点。问题是,对我来说,前导零使事情变得复杂

样本数据:

"100"
"002"
"075"
"0300"
"0135"
需要转换为:

1.00
0.02
0.75
0.300
0.135 
当我试图通过乘以一个小数进行转换时,前导零被去掉,002变成2.0,而不是0.02。更复杂的是,有些字符串值是3个字符,有些是4个字符

我使用的是PHP5.4


谢谢你的帮助

试试这段代码,它只是简单地执行铸造。希望能有帮助

select cast(insert(your_column, 2, 0, '.') as decimal(10, 3))
from your_table
$Myfloat = (float) $String;

试试这段代码,它只是简单地做铸造。希望能有帮助

$Myfloat = (float) $String;

试试这段代码,它只是简单地做铸造。希望能有帮助

$Myfloat = (float) $String;

试试这段代码,它只是简单地做铸造。希望能有帮助

$Myfloat = (float) $String;

基本PHP整数:带前导零的数字被视为八进制:077->63(int)->0x3F(十六进制)
075*2
octal 75*decimal 2
->
decimal 61*decimal 2
->122 decimal您应该在数据库本身中一次性解决该问题;除以100、1000或1000000等等。取决于长度和第一个字符似乎不是一个非常可持续的解决方案。基本PHP整数:带前导零的数字被视为八进制:077->63(int)->0x3F(十六进制)
075*2
octal 75*decimal 2
->
decimal 61*decimal 2
->122 decimal您应该在数据库本身中一次性解决该问题;除以100、1000或1000000等等。取决于长度和第一个字符似乎不是一个非常可持续的解决方案。基本PHP整数:带前导零的数字被视为八进制:077->63(int)->0x3F(十六进制)
075*2
octal 75*decimal 2
->
decimal 61*decimal 2
->122 decimal您应该在数据库本身中一次性解决该问题;除以100、1000或1000000等等。取决于长度和第一个字符似乎不是一个非常可持续的解决方案。基本PHP整数:带前导零的数字被视为八进制:077->63(int)->0x3F(十六进制)
075*2
octal 75*decimal 2
->
decimal 61*decimal 2
->122 decimal您应该在数据库本身中一次性解决该问题;除以100、1000或1000000等等,取决于长度和第一个字符似乎不是一个非常可持续的解决方案。