关于c#textBox、string的问题
做一个关于矩阵的程序,我想在一个textBox中输入矩阵,输入格式可以用逗号隔开,换行可以直接另起一行即可,但是如何把这个textBox里的数据转化到一个double型数...
做一个关于矩阵的程序,我想在一个textBox中输入矩阵,输入格式可以用逗号隔开,换行可以直接另起一行即可,但是如何把这个textBox里的数据转化到一个double型数组中计算呢?还有就是如果计算结果是小数如何转化为分数输出啊。。。。急!!!在线等
要考虑无限循环小数的情况 展开
要考虑无限循环小数的情况 展开
展开全部
我倒是可以提供一个类库的源代码给你,不过因为这是我自己用的一个类库,这里面只提供两个自定义的扩展方法。
你看懂后可以修改成自己的想要的。将int类型换为double。
此类库提供两个外部项目可用方法:SelectFirstInt()和SelectAllInt()
SelectFirstInt()方法可将字符串中的第一个连续的由阿拉伯数字组成的字符串提取出来,返回转型后的int类型值。如果没有找到由阿拉伯数字组成的字符串,则返回-1。
SelectAllInt()方法可将字符串中的所有的连续性的由阿拉伯数字组成的字符串依次提取出来,将它们转换为对应的int类型值,返回一个int类型的数组。如果没有找到由阿拉伯数字组成的字符串,则返回-1。
using System;
using System.Collections.Generic;
namespace MyExtension
{
public static class ExtensionClass
{
private static List<int> AllInt = new List<int>();
public static int SelectFirstInt(this string inputstring)
{
inputstring = inputstring.Trim();
char[] mychar = inputstring.ToCharArray();
int i = 0, j = 0, k = 0, a = 0;
string outstring =
你看懂后可以修改成自己的想要的。将int类型换为double。
此类库提供两个外部项目可用方法:SelectFirstInt()和SelectAllInt()
SelectFirstInt()方法可将字符串中的第一个连续的由阿拉伯数字组成的字符串提取出来,返回转型后的int类型值。如果没有找到由阿拉伯数字组成的字符串,则返回-1。
SelectAllInt()方法可将字符串中的所有的连续性的由阿拉伯数字组成的字符串依次提取出来,将它们转换为对应的int类型值,返回一个int类型的数组。如果没有找到由阿拉伯数字组成的字符串,则返回-1。
using System;
using System.Collections.Generic;
namespace MyExtension
{
public static class ExtensionClass
{
private static List<int> AllInt = new List<int>();
public static int SelectFirstInt(this string inputstring)
{
inputstring = inputstring.Trim();
char[] mychar = inputstring.ToCharArray();
int i = 0, j = 0, k = 0, a = 0;
string outstring =
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是想做数据类型转换吗,有相关的系统函数如Convert.ToDouble(x)。小数转分数好像没有直接的函数,你可以用小数点把整数和小数部分区分开(split函数可以实现),整数部分和小数部分长度可以用String的Length属性获得,整数部分和小数部分可以再用Convert.Toint32()转换成整型用于计算分数底部。有需要可以把正负数判断加进去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个需求很简单 分割一下就好了, 关于第二个需求 计算结果是小数如何划分: 首先 是矩阵运算吗?还有就是如果用小数标示
在处理小数方面 有两个思想 都可以 不管是你运算不管是加减乘除 只要结果与1取余(mod方法)的余数不是0 就说嘛这个数是小数,或者说你这个数末尾+0再转成double 大小和原来不变 即也是小数(小数末尾加0后大小不变)。
如果判断是小数的话 就不运算 直接用 两个数中间+“/”,没有余数的话就两个数做运算
但是这种方法运算出来的结果肯定是string 类型的 因为.net没有分数概念。
在处理小数方面 有两个思想 都可以 不管是你运算不管是加减乘除 只要结果与1取余(mod方法)的余数不是0 就说嘛这个数是小数,或者说你这个数末尾+0再转成double 大小和原来不变 即也是小数(小数末尾加0后大小不变)。
如果判断是小数的话 就不运算 直接用 两个数中间+“/”,没有余数的话就两个数做运算
但是这种方法运算出来的结果肯定是string 类型的 因为.net没有分数概念。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按\r\n做split 分解行
按,做split分解每个数字
double.prase 转为double
小数化分 如果不考虑无限循环小数的话,算法请参考小学数学课本。。。
化分后以 {分子}/{分母} 的格式输出
按,做split分解每个数字
double.prase 转为double
小数化分 如果不考虑无限循环小数的话,算法请参考小学数学课本。。。
化分后以 {分子}/{分母} 的格式输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用split函数
介绍
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。用法 传回数组 = Split(原始字串, 要找的字串, 拆成几个数组)
C# public string[] Split( params char[] separator)
介绍
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。用法 传回数组 = Split(原始字串, 要找的字串, 拆成几个数组)
C# public string[] Split( params char[] separator)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询