b is slightly less than 3 because there is a bit of time between the two
calls to time.Now().
If you substitute this:
fmt.Printf("input: %20.18f\n", b)
you get something like
input: 2.999999965553350911
HTH
Peter
On Fri, May 4, 2018 at 7:26 PM, Andrei Avram <[email protected]>
wrote:
> Hello everyone,
>
> Today I ran into a situation that is strange to me. I ran the following
> code on two Linux machines (go run floor.go), on two Windows ones, and on
> Go Playground.
>
> package main
>
> import (
> "time"
> "math"
> )
>
> func main() {
> datetime := time.Now().Add(time.Hour * 24 * 7 * 4 * 12 * 3)
> seconds := -1 * int(time.Now().Sub(datetime).Seconds())
> a := 29030400
> b := float64(seconds) / float64(a)
>
> println("input:", b)
> println("floor:", math.Floor(b))
> }
>
> On Linux the output is:
>
> input: +3.000000e+000
> floor: *+2.000000e+000*
>
> On Windows and Playground:
>
> input: +3.000000e+000
> floor: *+3.000000e+000*
>
> As you can see, on Linux the floor value of float value 3 is rounded down
> to 2, while on Windows/Playground it's 3.
>
> The code was ran with Go 1.10 and 1.10.2.
>
> The system details of one of the Linux machines, as reported by "go bug":
>
> go version go1.10.2 linux/amd64
> GOARCH="amd64"
> GOBIN=""
> GOCACHE="/home/msd/.cache/go-build"
> GOEXE=""
> GOHOSTARCH="amd64"
> GOHOSTOS="linux"
> GOOS="linux"
> GOPATH="/home/msd/go/"
> GORACE=""
> GOROOT="/usr/local/go"
> GOTMPDIR=""
> GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
> GCCGO="gccgo"
> CC="gcc"
> CXX="g++"
> CGO_ENABLED="1"
> CGO_CFLAGS="-g -O2"
> CGO_CPPFLAGS=""
> CGO_CXXFLAGS="-g -O2"
> CGO_FFLAGS="-g -O2"
> CGO_LDFLAGS="-g -O2"
> PKG_CONFIG="pkg-config"
> GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0
> -fdebug-prefix-map=/tmp/go-build304261270=/tmp/go-build
> -gno-record-gcc-switches"
> GOROOT/bin/go version: go version go1.10.2 linux/amd64
> GOROOT/bin/go tool compile -V: compile version go1.10.2
> uname -sr: Linux 4.13.0-37-generic
> Distributor ID: Ubuntu
> Description: Ubuntu 16.04.4 LTS
> Release: 16.04
> Codename: xenial
> /lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC
> 2.23-0ubuntu10) stable release version 2.23, by Roland McGrath et al.
> gdb --version: GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
>
>
> Is there something I miss or could this be an issue?
>
> Thanks,
> Andrei
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.