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);
這幾種方法都是可以的。