GH-1860: Add double_to_int() bif

This commit is contained in:
Tim Wojtulewicz 2021-12-13 10:46:14 -07:00
parent f2b74d21f7
commit 7de9a7d76f
3 changed files with 29 additions and 0 deletions

View file

@ -2422,6 +2422,19 @@ function int_to_count%(n: int%): count
## d: The :zeek:type:`double` to convert.
##
## Returns: The :zeek:type:`double` *d* as unsigned integer, or 0 if *d* < 0.0.
## The value returned follows typical rounding rules, as implemented
## by rint().
function double_to_int%(d: double%): count
%{
return zeek::val_mgr->Int(bro_int_t(rint(d)));
%}
## Converts a :zeek:type:`double` to a :zeek:type:`int`.
##
## d: The :zeek:type:`double` to convert.
##
## Returns: The :zeek:type:`double` *d* as signed integer. The value returned
## follows typical rounding rules, as implemented by rint().
##
## .. zeek:see:: double_to_time
function double_to_count%(d: double%): count

View file

@ -3,3 +3,7 @@
-1
4294967296
0
3
4
-3
-4

View file

@ -8,4 +8,16 @@ event zeek_init()
print to_int("-1");
print to_int("4294967296");
print to_int("not an int");
local a: double = 3.14;
print double_to_int(a);
local b: double = 3.9;
print double_to_int(b);
local c: double = -3.14;
print double_to_int(c);
local d: double = -3.9;
print double_to_int(d);
}