我输入了#34;重量:123,4千克" 我想将号码保存到数据库。所以我有一个像这样的代码子
$_POST['product_weight'] =
substr($_POST['product_weight'], 8, 3);
str_replace(',','',$_POST['product_weight']);
但现在问题是,输出总是" 123.00"。这是从substr或数据类型的错误?
我的表格
<input type="text" class='numbering' name="product_weight" value="<?=(!empty($form['product_weight']))?number_format($form['product_weight'],2):''?>">
输出
<td><?=(!empty($each->product_weight))?number_format($each->product_weight,2).' gr':'-';?></td>
答案 0 :(得分:0)
此代码substr($_POST['product_weight'], 8, 3)
表示&#34;从$ _POST值&#34;中的索引 8 开始返回 3 个字符。 - 所以你捕获的只是 123 ,而不是值的小数部分。
答案 1 :(得分:0)
试试这个,如果逗号是小数点,请参阅此Converting a number with comma as decimal point to float
逗号作为小数点live demo。
<?php
$string = 'Weight: 123,4 kg';
echo number_format(floatval(str_replace(',', '.', substr($string, 8))),2);
逗号作为分隔符,live demo
<?php
$string = 'Weight: 123,4 kg';
echo number_format(floatval(str_replace(',', '', substr($string, 8))),2);
答案 2 :(得分:0)
$string = 'Weight: 123,4 kg';
$arr_string = explode(" ", $string);
echo $arr_string['1']; //Output : 123,4
echo str_replace(",", ".", $arr_string['1']); //Output : 123.4