Php 输入字段将十进制数设置为0?

Php 输入字段将十进制数设置为0?,php,Php,我的页面中有多个输入字段,但其中2个不记得逗号后的数字。当我填写34,71并按下保存按钮时,它变为34,0。这两个输入字段都会出现同样的问题 两个输入字段的代码: <tr><td>Btw tarief: </td><td> <input type="text" name="tarief_btw" id="tarief_btw" value="<? $tarief_btw = $tarief_btw*100; $tarief

我的页面中有多个输入字段,但其中2个不记得逗号后的数字。当我填写34,71并按下保存按钮时,它变为34,0。这两个输入字段都会出现同样的问题

两个输入字段的代码:

<tr><td>Btw tarief: </td><td>        <input type="text" name="tarief_btw" id="tarief_btw" value="<? $tarief_btw = $tarief_btw*100; $tarief_btw=number_format($tarief_btw, 1, ',', ''); echo $tarief_btw ?>"></td></tr>
<tr><td>Btw goed doel:</td><td> <input type="text" name="goed_doel_btw" id="goed_doel_btw" value="<? $goede_doel_btw = $goede_doel_btw*100; $goede_doel_btw=number_format($goede_doel_btw,1,',', ''); echo $tarief_btw ?>"></td></tr>

Btw tarief:您不能对数字使用欧洲表示法。PHP不知道
34,71
实际上是
34.71
。它将把它当作一个字符串,通过自己的int->string转换规则将它转换成一个数字,而你的文本实际上是:

$foo = $value_from_form / 100;
becomes
$foo = '34,71' / 100;
becomes
$foo = '34' / 100;
becomes
$foo = 34 / 100;

= 0.34

在对该数字进行任何“计算”之前,请先将字符串扭曲,将
34,71
转换为
34.71
,或者不允许在字段中输入奇怪的数字表示形式。

将数字格式从1位更改为2位<代码>数字格式($tarief_btw,2,','','')
所以没有办法填写34,71并实际保存和显示34,71?当然,只是不要对文本做任何计算。。。它是文本,不是数字。如果您强制PHP将其视为一个数字,那么当PHP截断任何非数字的内容时,您将得到损坏的值。有没有办法填写34,71,然后将其转换为34.71进行数学运算,然后再次转到逗号?对于form->php,只需做一个简单的字符串替换:
->
。对于php->form,使用
$foo = $value_from_form / 100;
becomes
$foo = '34,71' / 100;
becomes
$foo = '34' / 100;
becomes
$foo = 34 / 100;

= 0.34