这是我在Stackoverflow的第一个问题所以请耐心等待我:)
过去几个小时我一直试图做的是替换上传和下载数据库中的符号。
How it should be:
Input: 100.000,25
Stored in database: 100000.25
Output: 100.200,25
这里的原因是我需要逗号作为小数分隔符,并且点为千位分隔符。我还需要能够使用存储在数据库中的数字来添加/乘以更多。
到目前为止,我所尝试的最好的是什么:
// Value from form input:
$value = 100.200,25;
// Removing all but numbers and comma
$remove_symbols = array("+"," ",".","-","'","\"","&","!","?",":",";","#","~","=","/","$","£","^","(",")","_","<",">");
$db_value = str_replace($remove_symbols, '', $value);
// $db_value insert into db
// Pulling out the data
$db_pulled = number_format($row['liter'],2,',','.');
echo $db_pulled;
:( returns: 100.200,00 (should return 100.200,25)
答案 0 :(得分:0)
您的问题有点令人困惑,而且您没有很好地标记它们。例如, php 标记会更合适和充分。 (我现在为你修改了它)
行。您遇到的问题是因为您需要用点替换逗号,因为这是浮点值的表示方式。在您的示例中,当您将其插入数据库时,它可能会被截断。
这是你可以做的:
<?php
$numString = "100.200,25";
$numString = str_replace(array('.', ','), array('','.'), $numString);
$num = floatval($numString);
echo $num;
?>
答案 1 :(得分:0)
看到您的代码返回:100.200,00(应返回100.200,25)
您的数据库表字段似乎是Int格式而不是十进制格式。
有关数字字段类型的详细信息,请访问http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html