Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Archive

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

nick405060

Motivator

10-03-2018
04:20 PM

```
| makeresults | eval a=1024.0 | eval b=.15 | eval c=a*(1.0-b) | table a b c
```

gives

```
a b c
1024.0 0.15 870
```

There are no integers, only floats. So why does Splunk typecast "c" to an int? It's not like it typecasts 870.0 to an int (which would still be unacceptable) it does it to 870.4.

Also, how do I fix this so that 870.4 is displayed?

1 Solution

Highlighted

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

back2root

Path Finder

10-03-2018
05:56 PM

Splunk by default rounds values within eval calculations to a precision that it thinks is appropriate. Thereby the resulting precision is limited by the precision of the least-precise operand.

To make it more precise let's focuse on the "**(1.0-b)**" part of your calculation:

Search:

| makeresults | eval b=.15 | eval c

partoptionA=(1.0-b) | eval cpartoptionB=(1.00-b) | eval cpartoptionC=exact((1.0-b)) | table b c_*

Results:

b c

partoptionA cpartoptionB cpartoptionC

0.15 0.9 0.85 0.85

So the solution to your problem is using the **exact()** function as dokumented in the SearchReference.

```
| makeresults | eval a=1024.0 | eval b=.15 | eval c=exact(a*(1.0-b)) | table a b c
```

This behaviour can be unexpected unexpected by an user. In my opinion the decision to do it that way is suboptimal and the behaviour is not documented verry well.

Highlighted
##

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Re: Typecast an integer to a float?

nick405060

Motivator

10-04-2018
09:06 AM

Thanks. Definitely documented poorly, nothing in a Google search, and for something so basic too

Highlighted
##

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Re: Typecast an integer to a float?

HiroshiSatoh

Champion

10-03-2018
06:55 PM

It is rounded to an integer. If you want to control, use the following function.

ex.

| makeresults | eval a=1024.0 | eval b=.15 | eval c=round(a*(1.0-b),2) | table a b c