Mercurial > hg > octave-lyh
diff src/ov-base.cc @ 3202:44d82b369c78
[project @ 1998-10-29 20:27:57 by jwe]
author | jwe |
---|---|
date | Thu, 29 Oct 1998 20:28:02 +0000 |
parents | 7a5a5da64756 |
children | bc61b0e8d60e |
line wrap: on
line diff
--- a/src/ov-base.cc +++ b/src/ov-base.cc @@ -167,6 +167,52 @@ return retval; } +int +octave_base_value::int_value (bool require_int, bool frc_str_conv) const +{ + int retval = 0; + + double d = double_value (frc_str_conv); + + if (! error_state) + { + if (require_int && D_NINT (d) != d) + { + error ("conversion to integer value failed"); + return retval; + } + + retval = static_cast<int> (d); + } + else + gripe_wrong_type_arg ("octave_base_value::int_value ()", type_name ()); + + return retval; +} + +int +octave_base_value::nint_value (bool frc_str_conv) const +{ + int retval = 0; + + double d = double_value (frc_str_conv); + + if (! error_state) + { + if (xisnan (d)) + { + error ("conversion of NaN to integer value failed"); + return retval; + } + + retval = NINT (d); + } + else + gripe_wrong_type_arg ("octave_base_value::nint_value ()", type_name ()); + + return retval; +} + double octave_base_value::double_value (bool) const {