去掉小数点后,多余0,没有现存的函数处理。因此采用字符串处理,如下:

//参数:t 输入的要处理的float值
//参数:n 期望最多保留小数位数(当最右边非0小数位多于n时,多出部分舍去)
AnsiString  DelFloatRightZero(float t,int n)
{AnsiString strFormat = AnsiString("%0.")+n+"f";AnsiString strFloat  = AnsiString().sprintf(strFormat.c_str(),t);//将float格式化为字符串,确保里面包含小数点while(1){//判断字符串最右边的字符,如果此字符是0或小数点if(*strFloat.AnsiLastChar()=='0')strFloat = strFloat.Delete(strFloat.Length(),1);else if(*strFloat.AnsiLastChar() == '.'){strFloat = strFloat.Delete(strFloat.Length(),1);break;}elsebreak;}return strFloat;
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{//测试ShowMessage(DelFloatRightZero(0.0001,3));
}

测试float数用例:
0.0001 输出 0
0.0010 输出 0.001
0.0100 输出 0.01
0.1000 输出 0.1
1.0        输出 1
0.0        输出 0
1.0        输出1
10.0      输出10
10         输出10
1.23      输出 1.23
1.2367 输出 1.237
上述函数改进一下,直接处理字符串,如下:

AnsiString  DelFloatRightZero(AnsiString t)
{if(t.Pos(".") == 0)return t;while(1){//判断字符串最右边的字符,如果此字符是0或小数点if(*t.AnsiLastChar()=='0')t = t.Delete(t.Length(),1);else if(*t.AnsiLastChar() == '.'){t = t.Delete(t.Length(),1);break;}elsebreak;}return t;
}

另外一种方法,利用标准库函数,代码如下:

#include <sstream>
void __fastcall TForm1::Button3Click(TObject *Sender)
{using namespace std;double num=30.000;ostringstream oss;oss<<num;string a = oss.str();ShowMessage( a.c_str() );
}

去掉小数点后多余的0相关推荐

  1. MySQL去除数据库中小数点后多余的0

    有关金额的字段,数据库中存储的是decimal(18,4),所以存储的数据小数点后会有一些"多余的"0,页面展示中又不想显示这些"多余的"0,故用mysql的函 ...

  2. js和Java分别正则匹配小数点后多余的0

    var dd = "2.0010万抵10.00万";var aa = dd.match(/\d+\.\d+/g);for ( var index in aa) {dd = dd.r ...

  3. 数值保留小数点两位,但同时去除小数点后多余0 的 javascript、java实现

    2019独角兽企业重金招聘Python工程师标准>>> 今天碰到一个需求.关于小数点的处理,看起来非常简单的事情,却花了一定时间做了一些试验.最后简单总结一下,以便备忘. 需求简化一 ...

  4. EXCEL如何真正彻底去掉小数点后的数字

    EXCEL如何真正彻底去掉小数点后的数字 目录 EXCEL如何真正彻底去掉小数点后的数字 例如: (1)我们设置不保留小数取整,它的显示效果是19869,但实际上,它的值并没有变,还是19869.15 ...

  5. Java——去掉小数点后面多余的0

    当小数点后位数过多,多余的0没有实际意义,根据业务需求需要去掉多余的0.后端存储浮点型数据一般会用到Bigdecimal 类型,可以调用相关方法去掉小数后多余0,然后转为string. 例如: pub ...

  6. 字符串去掉小数点后取整数

    字符串去掉小数点后取整数 String str = "70.2";if(str.contains(".")) {int indexOf = str.indexO ...

  7. parseFloat() 小数点后不为0,就保留2位。否则为整数

    parseFloat(100.99) 100.99 parseFloat(100.00) 100 parseFloat(.00) 0 小数点后不为0,就保留2位.否则为整数

  8. js取整,保留小数位数、四舍五入、科学记数法及去掉数字末尾多余的0

    1.向下取整 var num1 = 12.10345; var num2 =12.9801; var newnum1=Math.floor(num1)     //结果 12 var newnum2= ...

  9. java判断小数点后是否为0,是的话则取整,不是的话则保留

    整数与double类型作差,如果等于0,则小数点后的数字都为0 Map<String, String> map = new HashMap<String, String>(); ...

  10. mysql 去掉小数点后的多余的0

    亲测有效 这里是博主的原文链接–>https://blog.csdn.net/qq_34175893/article/details/79769611 测试3:正确的演示 select 0+CA ...

最新文章

  1. C#调用存储过程简单完整例子
  2. FASHION STORE OPENCART 2.X 自适应主题模板 ABC-0588
  3. Python之pip命令指定安装源和版本
  4. POJ 2240 Arbitrage
  5. python任务调度框架_Python任务调度模块APScheduler
  6. Altiumnbsp;designernbsp;学习教程
  7. spring-在配置文件中配置DAO时直接引用DataSource
  8. PDF.js开发笔记
  9. 跳转指令微型计算机,哪种类型的汇编程序跳转指令最有用?
  10. web性能优化(理论)
  11. 前端学习(1562):ng-hide,ng-show
  12. 后端用的nodejs怎么打包_你怎么也想象不到,平板玻璃、玻璃瓶这些竟可以用PET塑钢带打包!...
  13. html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
  14. ionic 实现 应用内(webview中html页面点击) 和 应用外 (浏览器html页面点击) 打开本地安装应用...
  15. 对于stackoverflow的中文翻译的相关问题
  16. 酒店opera系统服务器故障,【干货】酒店人必学的Opera系统中英讲解(值得收藏)...
  17. 货币兑换java程序,Spring Cloud货币换算及货币兑换服务介绍
  18. RHEL7学习笔记6:系统启动过程
  19. 针对P2P终结者4.0版本的研究
  20. linux未备案本地网站访问,教你如何解析未备案的域名到国内服务器

热门文章

  1. mac 苹果系统安装pygame环境插件
  2. 自动删除旧代码神器来了!Uber开源Piranha,号称吃代码的“食人鱼”
  3. 从零开始一套完整的短视频运营方案,想做抖音快手短视频的速来观摩。
  4. 将使用Tkinter编写的带图片的程序打包成exe文件,并且实现图片内嵌
  5. http转https后资源加载不显示
  6. 虚拟机局域网拓扑图_利用 VMWare 搭建随机拓扑网络
  7. 实时竞价RTB广告平台_传漾科技_中国领先的智能数字营销引擎
  8. java生成vcf_Android vcard使用示例,生成vcf文件
  9. 工科学生计算机二级报什么类别,学科门类(二级类)工学.doc
  10. 恒指赵鑫:8.7恒指德指喊单记录与晚盘前瞻