如何将double类型去掉小数点中的那些0去掉

博客访问: 119394
博文数量: 30
博客积分: 2010
博客等级: 大尉
技术积分: 300
注册时间:
分类: C/C++ 10:59:18
在实际应用中,我们通常需要将浮点数转化为字符,然后打印输出。下面是c++的实现: &&&&char str[16]; &&&&double num = 23.0; &&&&sprintf(str, "%f", num); &&&&std::cout<<str<<std:: 典型输出如下: &&&&23.000000 &&&& 但是,有时我们会有这样的需求:舍弃字符串中多余的零。 要求很简单,最直接的做法就是创建一个函数,算法大致是:从尾到头检索目标字符串,找到第一个非零数字,然后截取前半部分返回。但是浮点数是有误差的,差一个微乎其微的小小数是很普遍的,计算机把1写做1.000001是常有的事。这就增加了实现的难度。怎么办? 用惯了STL,看着字符数组,就有种使用c++不入流的感觉。使用STL提供的ostringstream很容易解决这个问题,也更自然。新的实现如下: &&&&double num=23.000001; &&&&std:: &&&&oss<< &&&&std::cout<<oss.str()<<std:: &&&& 典型输出如下: &&23
阅读(2002) | 评论(0) | 转发(0) |
上一篇:没有了
给主人留下些什么吧!~~
请登录后评论。19:48 提问
printf如何去掉浮点数多余的0?
printf如何去掉浮点数多余的0?比如1.500000输出为1.5
按赞数排序
double 使用以上两种中最短的形式,大小写的使用同%e和%E
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐20:12 提问
怎么去掉多余的0
如果输入了0.00,怎么去掉多余的0,只在文本框中显示 0.0,如果用户输入-0.0,也要转换成0.0
按赞数排序
Double.paseDouble("0.00").toString()
if value == 0.00 or value == -0.00
//也可以把数字用引号引起来
value = 0.0
* 去掉多余的.与0
* @author Hust
public class TestString {
public static void main(String[] args) {
Float f = 1f;
System.out.println(f.toString());......答案就在这里:----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
new DecimalFormat("0.0").format(num)); //无论num为任何值都只显示0.0
new DecimalFormat("#.#").format(num));//num小数点前后如果有值就显示,没有则不显示
ps:DecimalFormat()中,
0 就是阿拉伯数字0;
#为非0值;
具体可以查一下文档
去掉多余的.与0
@author Hust
public class TestString {
public static void main(String[] args) {
Float f = 1f;
System.out.println(f.toString());//1.0
System.out.println(subZeroAndDot("1"));;
// 转换后为1
System.out.println(subZeroAndDot("10"));;
// 转换后为10
System.out.println(subZeroAndDot("1.0"));;
// 转换后为1
System.out.println(subZeroAndDot("1.010"));;
// 转换后为1.01
System.out.println(subZeroAndDot("1.01"));;
// 转换后为1.01
使用java正则表达式去掉多余的.与0
public static String subZeroAndDot(String s){
if(s.indexOf(".") & 0){
s = s.replaceAll("0+?$", "");//去掉多余的0
s = s.replaceAll("[.]$", "");//如最后一位是.则去掉
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐查看: 11067|回复: 5
怎样去掉小数点后面无用的零?
论坛徽章:0
我定义了一个double型的一个变量,经计算后其结果是一个整数,
在输入时我想输出其整数部分.
如:5.0 + 2.0 = 7.0
在输出时我只想让其输出8,而不是8.0
但在4.3 + 2.0 = 6.3 时却输出6.3
怎么样解决?
论坛徽章:0
java.text.DecimalFormat df=new java.text.DecimalFormat(&0#&quot;
double c=23.12;
String str=df.format(c);
论坛徽章:0
String str=df.format(c);----这样不是String类型的啊。有没有能去除多余的0,而输出的是数值的类型恩?
论坛徽章:0
最初由 敦煌之心 发布
[B]String str=df.format(c);----这样不是String类型的啊。有没有能去除多余的0,而输出的是数值的类型恩? [/B]
int result=Integer.parseInt(str);
论坛徽章:0
double dou=Double.parseDouble(str);
论坛徽章:0
用类型转换啊(int)
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号C程序double定意的数中如何去掉小数末尾的0_百度知道
C程序double定意的数中如何去掉小数末尾的0
我有更好的答案
这个可以再输出的时候指定输出的位数的
查看更多答案&&满意请采纳
采纳率:63%
为您推荐:
其他类似问题
double的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 double怎么去掉小数点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信