Hi Brian,

I recently had a problem retrieving a float value from a dotNet function. I
had a conversion error which was caused by the local setting of the decimal
separator (a comma here in germany).

I figured out that you have already corrected this problem in cvs. Before I
found these correction I have tried the following version, which I would
prefer because it does not use an intermediate string for the conversion.

I don't know if you use this intermediate string accidentally - possibly for
the sake of rounding that happens during conversion to a string?

Anyway I would like to communicate my solution (your last cvs version
commented out):

namespace Python.Runtime {
    ...
    internal class Converter {
    ...
    internal static IntPtr ToPython(Object value, Type type) {
        ...

    case TypeCode.Single:
//      string ss = ((float)value).ToString(nfi);
//      IntPtr ps = Runtime.PyString_FromString(ss);
//      IntPtr op = Runtime.PyFloat_FromString(ps, IntPtr.Zero);
//      Runtime.Decref(ps);
//      return op;
        return Runtime.PyFloat_FromDouble((double) ((float)value));

Greetings
Peter Schwalm

_________________________________________________
Python.NET mailing list - [email protected]
http://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to