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

コードが100.200,00を返すことを確認します(100.200,25を返す必要があります)

データベーステーブルフィールドは、Decimal形式ではなくInt形式のようです。

数値フィールドタイプの詳細については、http://dev.mysql.com/doc/refman/5.0/en/numeric-types.htmlにアクセスしてください。

于 2013-02-25T20:21:00.167 に答える
0

あなたの質問は少し混乱しており、適切にタグ付けしていません。たとえば、phpタグの方が適切で十分です。(私は今あなたのためにそれを修正しました)

わかった。あなたが抱えている問題は、カンマをドットに置き換える必要があるためです。これは、浮動小数点値がどのように表現されるかです。あなたの例では、DBに挿入するとおそらく切り捨てられます。

できることは次のとおりです。

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