菜鸟发问:怎样把float型转变成整形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟发问:怎样把float型转变成整形相关的知识,希望对你有一定的参考价值。

不是那种强制转换——5.23 转完就变成 5 的那种。
我想让转型后 5.23 变成 523;3.4 转变成 34 的,有没有办法实现?
请高手指导我一下~

参考技术A 简单点说你可以先把float类型转为字符串,然后去掉点,转换成int
下边的方法就可以实现,你传人一个float类型的如5.67,得到567
public int float2Int(float f)
String str=Float.toString(f);
String[]s=str.split("\\.");
str=s[0]+s[1];
int result=Integer.parseInt(str);
return result;
追问

非常感谢,我还想请教大师一下

quint8 *buf;
float Value[10];
for(int i=0;i>8)&0xFF;



error C2296: “&”: 非法,左操作数包含“float”类型
我要修改的话,是要按照上面教我的,先把 Value[i] 改成 int 型,再进行 >> 8和 & 吗?

追答

是的,如果你的位元算操作符两边的数有float的是会报错的。

本回答被提问者和网友采纳
参考技术B 第一层是一种合适的方式,只要升级为float类型的分子和分母,然后建立系统操作前,将,第二头提升到了最高的浮点类型。

二楼是不正确的,因为它是塑造成float类型的操作,两个整形除以整形转换为float类型的精度会有损失。追问

咦?我没发现哪里精度会有损失啊?

public int float2Int(float f)

String str=Float.toString(f); //根据float值得到一个String对象
String s[]=str.split("\\."); //以"."为分隔符分隔s[0]s[1]
str=s[0]+s[1]; //合起来变成一个字符串
int result=Integer.parseInt(str); //把str转换成整数

return result;

大师能不能帮我详细点儿解释一下?

参考技术C 参考以下代码,实现转换:
declare
ff number:=0;
begin
b:=vv/100;
select trunc(b) into ff from dual;
dbms_output.put_line(ff);
end;
参考技术D Long a = Long.parseLong((5.67+"")replace(".",""))

以上是关于菜鸟发问:怎样把float型转变成整形的主要内容,如果未能解决你的问题,请参考以下文章

r语言如何把数据框内的数值型数据转变成日期型数据

sql 中怎样让日期转变成字符串

怎样将EXCEL里的时间由12小时制转变成24小时制

php中怎样将 \u4e00 转变为中文

Base64技术:把对象转变成字符串

C#WinForm项目怎么转变成WPF项目?