我有这个问题:
警告:#1265数据截断列
我的表单中有一个来自文本字段的值:price。
当我输入小数时:45,56(法语格式)
我的MySQL列类型是浮点数。
有人可以帮忙吗?
答案 0 :(得分:4)
如果你关心精确度,你应该从不使用浮点类型作为货币。你会遇到各种奇怪的舍入和比较错误。有关详细信息,请参阅the Wikipedia page on Floating Point。
DECIMAL会更好地满足您的需求 - from the MySQL documentation:
DECIMAL和NUMERIC类型[...]用于存储保存精确精度的重要值, 例如货币数据 。“< / p>
DECIMAL(15,2)会是一个好主意,但它不会改变货币格式与存储数字相关 - 你需要将值更改为小数,然后才能将值接受到列中是一种数字数据类型。
答案 1 :(得分:3)
浮动数据必须用a保存。 “点”而不是“逗号”。 45.56
所以在将数据保存到mysql之前,请确保格式正确。
答案 2 :(得分:1)
您不应将逗号,
用作小数点分隔符,而应使用点.
e.g。 45.56
您不仅会收到警告,还不会保存小数。 :)
答案 3 :(得分:0)
当你插入的值时,它会发生在mysql中特定列的指定数据类型下。
当我试图在名为date和数据类型设置为日期的列中将日期插入“2013-02-31”时,它发生在我身上。 所以2013-02-31不是有效日期,这就是它给出错误的原因。