0

这是我在 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) 
4

2 回答 2

0

你的问题有点混乱,你没有很好地标记它们。例如,一个php标签会更合适和充分。(我现在已经为你修改了)

好的。您遇到的问题是因为您需要用点替换逗号,因为这就是浮点值的表示方式。在您的示例中,当您将其插入数据库时​​,它可能会被截断。

这是你可以做的:

<?php
        $numString = "100.200,25";
        $numString = str_replace(array('.', ','), array('','.'), $numString);
        $num = floatval($numString);
        echo $num;
?>
于 2013-02-25T14:50:31.130 回答
0

看到你的代码返回:100.200,00(应该返回100.200,25)

您的数据库表字段似乎是 Int 格式而不是 Decimal 格式。

有关数字字段类型的更多信息,请访问http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

于 2013-02-25T20:21:00.167 回答