带小数的String转整数Integer

2024-09-05 11:38
文章标签 string integer 小数 整数

本文主要是介绍带小数的String转整数Integer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

其实String和Integer、Float、Double等相互转换这都很容易。可是带小数的String转Float、Double可能会出现“模糊数字”。
那么怎么避免呢?见下实例和结论。

 System.out.println("**********2.4***********");String a = "2.4"; System.out.println(a); // 2.4System.out.println("**********=====***********");System.out.println(Float.parseFloat(a) * 100); // 240.00002 (模糊数字)System.out.println(((Number) (Float.parseFloat(a) * 100)).intValue()); // 240 (理想值)System.out.println(Double.parseDouble(a) * 100); // 240.0System.out.println(((Number) (Double.parseDouble(a) * 100)).intValue()); // 240System.out.println("**********1.69***********");String a2 = "16.9";System.out.println(a2); // 16.9System.out.println("**********======***********");System.out.println(Float.parseFloat(a2) * 100); // 1690.0System.out.println(((Number) (Float.parseFloat(a2) * 100)).intValue()); // 1690 (理想值)System.out.println(Double.parseDouble(a2) * 100); // 1689.9999999999998 (模糊数字)System.out.println(((Number) (Double.parseDouble(a2) * 100)).intValue()); // 1689 (模糊数字)/** 结论:带小数的String转数字处理建议使用Number num = Float.parseFloat(numStr) * [换算的倍数]* 例如:Number num = Float.parseFloat("1.69") * 100;* int i = num.intValue();*/

这篇关于带小数的String转整数Integer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138855

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

单精度浮点数按存储格式转为整数的程序

///#include<cstdio>//-----------------union int_char{unsigned char ch[4];float i;};void out_put(union int_char x)//x86是小端对其模式,即最数据的最低位存储在地址的最低位上。{printf("单精度浮点数值为:%f\n",x.i,x.i);printf("存储位置从左到右

Java中四舍五入保留两位小数或不保留小数

//四舍五入,不保留小数; float gr = 8; float gc = 3; DecimalFormat df1 = new DecimalFormat("0");//格式化小数,不足的补0 String gaver = df1.format((gr/gc));//返回的是String类型的      //四舍五入,保留两位小数; float g1 = 111; f

hdu2072(string的应用)

单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 25447    Accepted Submission(s): 5957 Problem Description lily的好朋友xiaoou333最近很空,他

【UVA】10739 - String to Palindrome(动态规划)

比较水的动态规划 dp[i][j] 将原串 i ~ j 之内的字符转化为回文字符所需要的最小操作次数 其中删除操作和添加操作本质上是一样的。 三个状态转移方程: dp[i][j] = min(dp[i][j] ,dp[i + 1][j]); dp[i][j] = min(dp[i][j] ,dp[i + 1][j - 1]); dp[i][j] = min(dp[i][j] ,dp[

理解String的compareTo()方法返回值

compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序), 如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值。 如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符作比较, 以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度。 我们可以通过阅读源码加深对compareTo()的理解: comp

【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)

基本数据类型   JavaScript基本数据类型包括:undefined、null、number、boolean、string。基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值。 1)基本数据类型的值是不可变的 任何方法都无法改变一个基本类型的值,比如一个字符串: var name = "change";name.substr();//hangconsole.log