If you are running 32-bit 3.6 on Windows, please test this
Pavol Lisy
pavol.lisy at gmail.com
Fri Sep 1 03:24:36 EDT 2017
On 8/31/17, 20/20 Lab <lab at 2020fresno.com> wrote:
>
>
> On 08/31/2017 01:53 AM, Pavol Lisy wrote:
[...]
> Valid point, fired up a windows 10 machine and worked as well.
>
> Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit
> (Intel)] on win32
> Type "copyright", "credits" or "license()" for more information.
> >>> import math
> >>> math.sqrt(1.3)
> 1.140175425099138
> >>>
>
> This machine does not have the creators update yet. So there's that.
> --
> https://mail.python.org/mailman/listinfo/python-list
Thx! :)
Could somebody help me?
I was trying to call sqrt using ctypes from msvcrt but I am not succesful:
import ctypes
msc = ctypes.windll.msvcrt
def msqrt(arg):
s = ctypes.create_string_buffer(100)
d = ctypes.c_longdouble(arg)
msc.sprintf(s, b'arg = %g', d)
print(s.value.decode())
r = msc.sqrt(d)
msc.sprintf(s, b'sqrt = %g', r) # r is int so this format is
wrong I just like to show my intention
print(s.value.decode())
print("r = ", r, r.__class__)
>>> msqrt(1.3)
arg = 1.3
sqrt = 0
r = 0 <class 'int'>
>>> msqrt(-1)
arg = -1
sqrt = 4.00144e-320 # because wrong format in sprintf
r = 8099 <class 'int'>
And ->
>>> msc.sqrt.restype
ctypes.c_long
>>> msc.sqrt.argtypes is None
True
How to do it properly? Isn't ctypes broken?
More information about the Python-list
mailing list