将字符串转换为浮点PHP
我在MySQL表中有一列是varchar。但是,列中的数据代表浮点值。我想知道是否有一种简单的方法可以在不丢失数据的情况下将字符串转换为浮点。问题是,对我来说,前导零使事情变得复杂 样本数据:将字符串转换为浮点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 谢谢你的
"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等等,取决于长度和第一个字符似乎不是一个非常可持续的解决方案。