我试图在我的数据库表中插入小数,但是我得到的只是尾随“ 0”。因此,例如,与其在数据库中插入“ 0.15”而不是插入“ 0.00”。当键入的数字为“ 1.05”时,它将插入为“ 1.00”。我已将step="any"
添加到输入中,但看不到任何变化。如何修复我的代码,使其可以接受十进制值?
<form action="handler.php" method="post">
<input class="i2" name="cshpntamt" type="number" step="any">
<input class="span2" name="cshamt" type="number" step="any">
<button type="submit" name="cashptsbut">Cash Out</button>
</form>
function cashPnt(event){
var a = $(this).parent("form").find('input.i2').val();
var b = 20;
var c = a / b;
var spanNum2 = $(this).parent("form").find('input.span2')[0];
spanNum2.value = c;
}
$('input.i2').on('change keyup paste input', cashPnt);
我的数据库如下:
cshid | int(11)
cshpntamt | int(11)
cshamt | decimal(10,2)
编辑:已更新,其中包括handler.php文件:
if(isset($_POST['cashptsbut'])) {
$cshpntamt = $_POST['cshpntamt'];
$cshamt = $_POST['cshamt'];
$stmt = $conn->prepare("INSERT INTO cashpoints (cshpntamt, cshamt) VALUES (?, ?)");
$stmt->bind_param("ii", $cshpntamt, $cshamt);
$stmt->execute();
$stmt->close();
}
答案 0 :(得分:0)
语法:Number(((yourNumericValueHere).toFixed(2));
首先,将.toFixed(2)应用于要四舍五入到小数点后的数字。请注意,这会将值转换为数字的字符串。
例如: 我有一个小数位后最多5位数字的金额,我想将其缩短到小数点后2位。我这样做是这样的:
var price = 0.12345;
var priceRounded = Number((price).toFixed(2));
console.log('Original Price: ' + price);
console.log('Price Rounded: ' + priceRounded);
在您的代码中尝试此方法。希望它会起作用
答案 1 :(得分:0)
CharlesEF解决了这个问题:
您正在bind_parm语句中将数字转换为整数。将“ ii”更改为“ dd”或“ ff”
谢谢!