float存储格式化
A. 怎么将float数据转换成字符串
可以使用sprintf函数将float类型转为字符串(字符数组)。 sprintf功能与格式化输出函数printf类似,只不过不是输出到终端,而是输出到第一个参数的字符串中。函数原型为: int sprintf(char *dst, const char *format ...); 声明与stdio.h。
B. 怎么将CGFloat格式化为允许保留小数但最多位
保留指定位数能进行四舍五入
public static void main(String[] args) {
String str ="12312323423423.123283123";
BigDecimal b = new BigDecimal(str);
//,代表分隔符
//0.后面的##代表位数 如果换成0 效果就是位数不足0补齐
DecimalFormat d1 =new DecimalFormat("#,##0.####;(#)");
System.out.println(d1.format(b));
}
不四舍五入的方法
String str ="12312323423423.123283923";
BigDecimal b = new BigDecimal(str);
//,代表分隔符
//.后面的##代表位数 如果换成0 效果就是位数不足0补齐
DecimalFormat d1 =new DecimalFormat("#,##0.######");
// 设置舍入模式
d1.setRoundingMode(RoundingMode.FLOOR);
System.out.println(d1.format(b));
C. c语言里如何将float转换成string
sprintf类似于fprintf函数,后者格式化打印到文件,前者打印到一个char*指向的内存
用法:
#include<stdio.h>
floatf=1032.192
charbuffer[32];
//执行以下语句,buffer里面就保存了f转换的结果
sprintf(buffer,"%f",f);
D. C语言关于浮点类型的格式化输入输出,该如何使用修饰符
没有long double这种表达。也不存在%llf这种表达格式;
scanf的时候不止double需要 %lf,float也需要%lf才能正常输入;
double的输出最好用%lf,精度更高。
E. double与float的区别
float是32位的存储空间,double是64位存储空间,内存存储是从低位到高位存,浮点数的表示形式在内存中是指数的表示方式,不是存实际数,32位的浮点数2前面加上32个0,算出来的64位的浮点数结果就很小了,float对应是%f,ble对应的是%lf
F. c语言关于float
强制类型转换的话,运行结果应该是2.000000 。
因为5和2都是int型,所以5/2的结果是2,然后强制转换为float型的话为2.000000 。
强制类型转换的格式为(float)(5/2),如果你想得到正确答案,将5或2写成小数形式即可,比如printf("%f",5/2.0);
------------
按照你说的我运行了一下,运行结果是2.500000 ,没错啊。
G. C语言float格式化十六进制后变化
没毛病啊, 0的ascii码 是48,换算成16进制就是30. 而那个点 就是2E ,但是你写代码不要这么抠门好不好, 1.1 这个字符串至少也要占用4个byte,而你就申请3个. 这种写法在大工程中很容易出错! 多申请几个又不会怀孕!
H. java中怎样将float变量变成string
在java中,将浮点数格式化为string,一般使用DecimalFormat。DecimalFormat的用法示例如下:
DecimalFormat df = new DecimalFormat();
double data = 1234.56789;
System.out.println("格式化之前的数字: " + data);
String style = "0.0";//定义要显示的数字的格式
df.applyPattern(style);// 将格式应用于格式化器
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
style = "00000.000 kg";//在格式后添加诸如单位等字符
df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
// 模式中的"#"表示如果该位存在字符,则显示字符,如果不存在,则不显示。
style = "##000.000 kg";
df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
// 模式中的"-"表示输出为负数,要放在最前面
style = "-000.000";
df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
// 模式中的","在数字中添加逗号,方便读数字
style = "-0,000.0#";
df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
// 模式中的"E"表示输出为指数,"E"之前的字符串是底数的格式,
// "E"之后的是字符串是指数的格式
style = "0.00E000";
df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
// 模式中的"%"表示乘以100并显示为百分数,要放在最后。
style = "0.00%";
df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df.format(data));
// 模式中的"\u2030"表示乘以1000并显示为千分数,要放在最后。
style = "0.00\u2030";
//在构造函数中设置数字格式
DecimalFormat df1 = new DecimalFormat(style);
//df.applyPattern(style);
System.out.println("采用style: " + style + "格式化之后: " + df1.format(data));
下面是总结:
格式化之前的数字: 1234.56789
采用style: 0.0格式化之后: 1234.6
采用style: 00000.000 kg格式化之后: 01234.568 kg
采用style: ##000.000 kg格式化之后: 1234.568 kg
采用style: -000.000格式化之后: -1234.568
采用style: -0,000.0#格式化之后: -1,234.57
采用style: 0.00E000格式化之后: 1.23E003
采用style: 0.00%格式化之后: 123456.79%
采用style: 0.00‰格式化之后: 1234567.89‰
I. java中double和float值格式化时有错误,求解!
因为你定义了 格式 小数点后面保留两位
他格式化后,会做个 四舍五入
输出0.015f是,有精度损失, 对0.01499 四舍五入 就是0.01了
计算时,建议使用BigDecimal 那样不会有精度损失
J. 如何将float转换为string
在C语言中,可以通过_gcvt函数实现这个功能 将float数据转换为string
在java语言中,可以通过如下几种方法:
Float f = 0.0f;
String str = String.valueOf(f);
String str1 = f + "";
String str2 = f.toString();
System.out.println(str);
System.out.println(str1);
System.out.println(str2);
这几种方法都是可以的。