我有一个模特
<?php
namespace common\models;
use Yii;
/**
* This is the model class for table "new_val".
*
* @property integer $id
* @property string $avg
* @property string $sd
*/
class NewVal extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'new_val';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['avg', 'sd'], 'double'],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'avg' => 'Avg',
'sd' => 'Sd',
];
}
}
在我的DB
中,将avg
和sd
的值设置为小数。所以我想在其中保存一个十进制值。
我尝试搜索该方法,但是找不到一个好的解决方案。我试图在规则中设置float
和double
。但是float
给了我一个例外,double
将我输入的十进制数字转换为四舍五入,即,如果我输入了15.5
,那么它将四舍五入为16
。
如何设置带有十进制数字的规则?
任何帮助将不胜感激。
答案 0 :(得分:1)
尝试validator number
,但根据框架,它与CustomTabsClient.bindCustomTabsService(context, CUSTOM_TAB_PACKAGE_NAME, new CustomTabsServiceConnection() {
@Override
public void onCustomTabsServiceConnected(ComponentName name, CustomTabsClient client) {
mClient = client;
mClient.warmup(0);
CustomTabsSession session = mClient.newSession(new CustomTabsCallback() {
@Override
public void onPostMessage(String message, Bundle extras) {
// Here the method not called by CustomTabs
super.onPostMessage(message, extras);
}
@Override
public void onMessageChannelReady(Bundle extras) {
super.onMessageChannelReady(extras);
}
@Override
public void onNavigationEvent(int navigationEvent, Bundle extras) {
super.onNavigationEvent(navigationEvent, extras);
}
});
session.mayLaunchUrl(uri, null, null);
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder(session);
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, uri);
}
@Override
public void onServiceDisconnected(ComponentName name) {
mClient = null;
}
});
相同:
double
答案 1 :(得分:-1)
您在规则中使用数字, 如果您有类似16.66677777777777777的数字,则该轮的回合与yii无关 并且您在mysql中的字段没有足够的空间使其无法使用
floor(your_number * 100) / 100