> > But I don't think it is because Windows is so much faster than Linux > Yeah... :) I was exploring all cases.
and/or the way the time package implemented is different between Windows > and Linux Could this be considered a possible Go bug and would it worth opening an issue on Github? On Friday, May 4, 2018 at 10:57:46 PM UTC+3, speter wrote: > > So on Linux it's working as expected. In the playground time is "virtual"; > the start time is fixed and it doesn't progress unless you explicitly Sleep > -- because you don't Sleep in your program, time.Now() returns the same > time on both invocation. > > So the only slightly surprising part is that on Windows, time as measured > by time.Now() doesn't progress between the two statements. But I don't > think it is because Windows is so much faster than Linux. :) I'd guess this > is because the way Windows manages time is different from how Linux manages > it, and/or the way the time package implemented is different between > Windows and Linux. The result of the cross-platform differences seems to be > less precision on Windows -- at least in this specific scenario. > > Peter > > > On Fri, May 4, 2018 at 9:33 PM, Andrei Avram <andrei.a...@gmail.com > <javascript:>> wrote: > >> Peter and Ian, you are both wright regarding the printing. Still, on >> Linux I have different values than on Go Playground. >> >> Regarding the speed, Peter, do you think that on Windows the two calls >> just run faster every time? >> >> On Friday, May 4, 2018 at 9:07:15 PM UTC+3, speter wrote: >>> >>> 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 <andrei.a...@gmail.com> >>> 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 golang-nuts...@googlegroups.com. >>>> 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 golang-nuts...@googlegroups.com <javascript:>. >> 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 golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.