- psi_num_exp_exec(val->data.num, iv, frame);
- psi_set_to_int(zv, val, iv, frame);
+ switch (psi_num_exp_exec(val->data.num, iv, frame)) {
+ case PSI_T_FLOAT:
+ case PSI_T_DOUBLE:
+ case PSI_T_LONG_DOUBLE:
+ psi_set_to_float(zv, val, iv, frame);
+ break;
+ default:
+ psi_set_to_int(zv, val, iv, frame);
+ break;
+ }