我想在laravel 5.1中省钱.
这是表格价格定义:
$table->decimal(price,6,2);
Run Code Online (Sandbox Code Playgroud)
例如 ; 当1.000,50土耳其里拉斯保存到MySQL这种格式1.00
怎么能解决这个问题?
Rwd*_*Rwd 17
我建议不要使用浮点值来将货币存储为小数,因为由于浮点数在系统中的存储方式,浮点数的行为并不完全符合您的预期。
将值存储在 kuru 中会更好吗?因为从长远来看,这会容易得多。
其次,如果您使用 Eloquent,您可以在模型上使用修改器/访问器,例如
public function getPriceAttribute($price)
{
return $price / 100;
}
public function setPriceAttribute($price)
{
$this->attributes['price'] = $price * 100;
}
Run Code Online (Sandbox Code Playgroud)
这样您就不必手动转换价格。
您可以尝试定义这样的价格
$table->decimal('price',9,3);
Run Code Online (Sandbox Code Playgroud)
哪里,
9是精度,即1234567.89的精度为9
3是小数位数,即123456.789的小数位数为3
您可以参考此链接了解数据库的精度和规模 如何解释数据库中数字的精度和比例?