コード例 #1
0
        public RationalHandle Parse(string source, NumberStyles number_style, NumberFormatInfo number_format_info)
        {
            var native_number_style       = (Int32)number_style;
            var native_number_format_info = new PMC_NUMBER_FORMAT_INFO(number_format_info ?? CultureInfo.CurrentCulture.NumberFormat);

            HandleResultCode((PMC_STATUS_CODE)PMCCS_Parse(source, native_number_style, native_number_format_info, out IntPtr r_handle));
            return(new RationalHandle(r_handle));
        }
コード例 #2
0
        public UBigIntHandle Parse(string source, NumberStyles number_style, NumberFormatInfo number_format_info)
        {
            var    native_number_style       = (int)number_style;
            var    native_number_format_info = new PMC_NUMBER_FORMAT_INFO(number_format_info != null ? number_format_info : CultureInfo.CurrentCulture.NumberFormat);
            IntPtr r_handle;

            HandleResultCode((PMC_STATUS_CODE)PMCCS_Parse(source, native_number_style, native_number_format_info, out r_handle));
            return(new UBigIntHandle(r_handle));
        }
コード例 #3
0
        public string ToString(RationalHandle value, string format, NumberFormatInfo number_format_info)
        {
            var native_number_format_info = new PMC_NUMBER_FORMAT_INFO(number_format_info ?? CultureInfo.CurrentCulture.NumberFormat);

            HandleResultCode((PMC_STATUS_CODE)PMCCS_GetStringCount_R(value.NativeHandle, format, native_number_format_info, IntPtr.Zero, 0, out Int32 string_builder_capacity));
            string_builder_capacity += 1; // 終端ヌル文字の分だけ増やす
            var temp_buf = new StringBuilder(string_builder_capacity);

            HandleResultCode((PMC_STATUS_CODE)PMCCS_ToString_R(value.NativeHandle, format, native_number_format_info, temp_buf, temp_buf.Capacity, out Int32 r));
            return(temp_buf.ToString());
        }
コード例 #4
0
        public bool TryParse(string source, NumberStyles number_style, NumberFormatInfo number_format_info, out RationalHandle value)
        {
            var native_number_style       = (Int32)number_style;
            var native_number_format_info = new PMC_NUMBER_FORMAT_INFO(number_format_info ?? CultureInfo.CurrentCulture.NumberFormat);

            HandleResultCode((PMC_STATUS_CODE)PMCCS_TryParse(source, native_number_style, native_number_format_info, out IntPtr value_handle));
            if (value_handle == IntPtr.Zero)
            {
                value = null;
                return(false);
            }
            value = new RationalHandle(value_handle);
            return(true);
        }
コード例 #5
0
        public bool TryParse(string source, NumberStyles number_style, NumberFormatInfo number_format_info, out UBigIntHandle value)
        {
            var    native_number_style       = (int)number_style;
            var    native_number_format_info = new PMC_NUMBER_FORMAT_INFO(number_format_info != null ? number_format_info : CultureInfo.CurrentCulture.NumberFormat);
            UInt32 r_result;
            IntPtr value_handle;

            HandleResultCode((PMC_STATUS_CODE)PMCCS_TryParse(source, native_number_style, native_number_format_info, out value_handle, out r_result));
            if (r_result == 0)
            {
                value = null;
                return(false);
            }
            value = new UBigIntHandle(value_handle, this);
            return(true);
        }
コード例 #6
0
 private static extern Int32 PMCCS_GetStringCount_X(IntPtr x, string format, [In] PMC_NUMBER_FORMAT_INFO format_option, IntPtr buffer, int buffer_size, out int size);
コード例 #7
0
 private static extern Int32 PMCCS_TryParse(string source, int number_styles, [In] PMC_NUMBER_FORMAT_INFO format_option, out IntPtr o);
コード例 #8
0
 private static extern Int32 PMCCS_ToString_X(IntPtr x, string format, [In] PMC_NUMBER_FORMAT_INFO format_option, StringBuilder buffer, int buffer_size, out int size);