当前位置:编程学习 > C#/ASP.NET >>

咨询一个字符串转换数字的问题

一个浮点数,比如 float a = 15.0F;
转换成字符串也要转成 string b = "15.0";
注意,小数点后面的0也要转换,不能丢失。

一下子找不到好方面,咨询下大家,请大家给力帮忙。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
a.ToString("0.0");


a 是不确定的,有可能 float a = 25.40F; 也有可能是 flaot a = 255.4810F;

不能单独用ToString("0.000") 这类方,

请问还有什么好思路吗? --------------------编程问答-------------------- 一开始a就定义为string类型 --------------------编程问答-------------------- 项目中的话,肯定会规定统一的浮点格式~应该不会出现0.0,0.00不同格式~ --------------------编程问答--------------------
引用 3 楼 xiaoyu821120 的回复:
一开始a就定义为string类型


我要的是数字转字符,怎么能一开始就定义为string呢? --------------------编程问答-------------------- 那你直接把最后一个字母去掉,行吗?
用subString
和Indexof
--------------------编程问答--------------------
引用 6 楼 soonfei 的回复:
那你直接把最后一个字母去掉,行吗?
用subString
和Indexof


float a =15.0F 如果不加格式的话,采用ToString()只会转换成 “15”,你这样回答解决不了问题。 --------------------编程问答-------------------- 问题我换另外一个办法解决了,最后确认该问题无解,没有解决办法。

从判断小数位也无法判断数字后面的0。 --------------------编程问答-------------------- String.Format("{0:N}",a) --------------------编程问答-------------------- 那楼主是怎么解决的呢?分享一下!! --------------------编程问答-------------------- Convert.ToDecimal(a).ToString("#.0"); --------------------编程问答--------------------
引用 9 楼 hudenq 的回复:
String.Format("{0:N}",a)


无解

你试试看 25.41500F  能不能转成“25.41500”

我这个问题其实问的不好,这个问题是无解的。 --------------------编程问答-------------------- 不要说神马事是无解的
自己不去想怎么解
你这种思想,哎
飘过去 --------------------编程问答--------------------
引用 10 楼 soonfei 的回复:
那楼主是怎么解决的呢?分享一下!!


我是绕过这个问题的,也就是说没去解决,我觉得是根本不可能实现的事,懒得钻研了。 --------------------编程问答-------------------- 楼上的方法都是固定的,我的 float 变量 是随机的数字,我要知道是多少小数位就不会问这个问题了,这就涉及到判断小数位,判断小数位还是比较容易,可是对于小数位后面的0无法判断,因为比如12.50,判断的时候只认为小数位是1,而不会是2,在格式化数字的时候,比如我们经常有这样的输入:12.0,12.1,12.2,12.3。。。。。,同时又想格式化按这样的小数位输出“12.0,12.1,12.2,12.3。。。。。,”,如果事先知道多少小数位完全可以通过ToString("0.0000")这类方法,可问题是事先不知道多少小数位,当碰到 浮点数 是 12.550的时候,计算机自动会把它记录成12.55,所以小数位只有2位,我们就不可能按 ToString("0.000")输出。

所以我说无解,是不想耽误大家宝贵时间,不要误解我的意思。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 12 楼 xuwencan 的回复:
引用 9 楼 hudenq 的回复:
String.Format("{0:N}",a)


无解

你试试看 25.41500F 能不能转成“25.41500”

我这个问题其实问的不好,这个问题是无解的。

没意思的帖子
可以先将double变量扩大10的n次放倍变成整数,ToString,再定小数点的位置 --------------------编程问答-------------------- 楼主,你的需求是有问题的。
首先,float f = 15.0F; 你怎么可以随意的认定某个 float 后面就是固定的一个或者 N 个 0?float 后面的 0 是无限制的,显示几个完全是格式化的问题,你想指定几个 0 就显示几个 0

float f = 255.4810F 这个float 本身的 value 就是 255.481!没有0,这就是在计算机中的存储,0 是你自己想出来的。我也可以说 255.481000000000

不是你定义的时候后面跟几个 0,他就应该有几个 0 的。 --------------------编程问答--------------------   无解???那微软为什么要开发这个东西呢?是你技术不够还是微软不够牛?这是个值得思考的问题·· --------------------编程问答-------------------- 呵呵  貌似真的无解啊 。。我想。 重写tostring方法  还有用正则判断 还有想了好多都不能。。。。。 --------------------编程问答-------------------- 楼主把问题说明白了,最后也说了,这问题是问得太急了,问错了题. --------------------编程问答-------------------- --------------------编程问答-------------------- 不确定小数位、还要保存“0”;在什么样的情况下需要这样、、不统一不和谐;
当然非要这样其实并不是不行,只是判断麻烦点; --------------------编程问答--------------------  string ss = "1213.0000130F";
  string s = ss.Substring(0, ss.Length - 1); --------------------编程问答-------------------- 可以判断,只是通过长度,取数进行,一步一步的来 --------------------编程问答-------------------- 用正则,只匹配数字和小数点,就可以了, --------------------编程问答-------------------- 受不了
最笨得办法用ascII码来做也做得出来
怎么能说无解? --------------------编程问答-------------------- --------------------编程问答-------------------- 如果一定要这么做,你最好还是先定义为string型。要用的时候再转成single。
2.1000000f在定义的时候,并不能保留后面有几个0的信息。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,